Plantilla:WzCzW/Disseny tècnic/db-mix-alt05
De GERMINADOR wiki
< PLANTER <Disseny interacció < Disseny tècnic < Variant alt-1 base dades
de sistemes i projectes de creació col·lectiva en xarxa.
- m.Lloc on hi ha les plantes nades, on es crien les plantes petites, destinades a ésser trasplantades; les mateixes plantes. (Diccionari IEC).
Disseny tècnic: Base de dades, codi SQL (variant mix-alt-0,5)
Codi SQL de la proposta mix-alt-0,5 de base de dades per Wikipool 0.1.0.
Aquesta proposta és un pas enrera respecte a la proposta proposta alt-1. És un mix d'aquesta i la versió inicial on no es separa continent (retalls o snips) de contingut (content) sinó que els nous camps que tenia snip es posen a la mateixa taula contents.
Degut a això la taula contents2snips_old no pot ser només relacional sinó que ha de guardar informació dels continguts, siguin text, imatge, imatge referenciada, etc... i de les seves propietats. Les altres parts no canvien o canvien poc.
Aquesta versió és compatible amb el codi inicial del desenvolupament de les pools de Wikipool 0.1.0.
-- MySQL
--
-- Host: localhost Database: wikipool
-- ------------------------------------------------------
-- Server version
-- Wikipool database version mixAlt0,5 --- 2007_11_28
-- NOTA ADAPTACIÓ: en principi aquesta base de dades és compatible amb la de 8-10-2007 amb només uns pocs canvis de nom en 3 camps en les taules 'contents' i 'pool'.
-- -------------------------------------------------------
-- Table structure for table `contents`
-- Es refereix tant als 'retalls' com al seu 'contingut' que pot ser text o imatge
-- NOTA ADAPTACIÓ: Respecte a la versió inicial de la bd (8-10-2007) hi ha camps nous però dels camps que ja hi havia només hi ha 2 camps que per claredat han canviat de nom. 'data' ara és 'img_data' i 'css' ara és 'txt_css'.
DROP TABLE IF EXISTS `contents`;
CREATE TABLE `contents` (
`id` int(11) unsigned NOT NULL auto_increment,
`coordenates` varchar(255) NOT NULL COMMENT 'coordenades; son el top i el left de cada div respecte la pool. Es guarden tipus 120x400 i s han de recuperar fent servir explode',
`content_coordenates` varchar(255) NOT NULL COMMENT 'coordenades; son el top i el left del contingut (quan és imatge) respecte la div. Es guarden tipus 120x400 i s han de recuperar fent servir explode. Per defecte son (0,0)',
`content_type` int(11) unsigned NOT NULL,
`txt_css` varchar(255) NOT NULL COMMENT 'color, tamany, etc.. quan el contingut és text',
`img_data` mediumtext character set utf8 collate utf8_unicode_ci NOT NULL COMMENT 'URL del recurs (src) quan són imatges referenciades',
`img_size` varchar(255) NOT NULL COMMENT 'mida. són el width i el lenght del contingut (quan és imatge) en píxels. Es guarden tipus 120x400 i s han de recuperar fent servir explode',
`snip_css` varchar(255) NOT NULL COMMENT 'color de fons. marge. contorn. angles. ... del div per defecte és transparent',
`status` bool NOT NULL COMMENT 'locked-editable. per si cal bloquejar una caixa mentre algú l està editant',
`age` timestamp (14) NOT NULL COMMENT 'última actualització de contingut per aquest retall. Això es podria consultar en el mode Reciclatge per saber quina és la snip que té un contingut més vell',
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
--
-- Table structure for table `contents2pool`
-- Historial
DROP TABLE IF EXISTS `contents2pool`;
CREATE TABLE `contents2pool` (
`content_id` int(11) NOT NULL,
`pool_id` int(11) NOT NULL,
KEY `pool_id` (`pool_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Table structure for table `contents2snips_old`
-- Historial
DROP TABLE IF EXISTS `contents2snips_old`;
CREATE TABLE `contents2snips_old` (
`content_id` int(11) unsigned NOT NULL COMMENT 'ens referim al contenidor però fem ref a la taula contents',
`content_type` int(11) unsigned NOT NULL,
`txt_css` varchar(255) NOT NULL COMMENT 'color, tamany, etc.. quan el contingut és text',
`img_data` mediumtext character set utf8 collate utf8_unicode_ci NOT NULL COMMENT 'URL del recurs (src) quan són imatges referenciades',
`img_size` varchar(255) NOT NULL COMMENT 'mida. són el width i el lenght del contingut (quan és imatge) en píxels. Es guarden tipus 120x400 i s han de recuperar fent servir explode',
`content_coordenates` varchar(255) NOT NULL COMMENT 'coordenades; son el top i el left del contingut (quan és imatge) respecte la div. Es guarden tipus 120x400 i s han de recuperar fent servir explode. Per defecte son (0,0)',
`from` timestamp (14) NOT NULL,
`until` timestamp (14) NOT NULL,
KEY `content_id` (`content_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Table structure for table `pos2snips_old`
-- Historial
DROP TABLE IF EXISTS `pos2snips_old`;
CREATE TABLE `pos2snips_old` (
`content_id` int(11) unsigned NOT NULL COMMENT 'ens referim al contenidor però fem ref a la taula contents',
`coordenates` varchar(255) NOT NULL,
`from` timestamp (14) NOT NULL,
`until` timestamp (14) NOT NULL,
KEY `content_id` (`content_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Table structure for table `snips2pool`
--
DROP TABLE IF EXISTS `snips2pool`;
CREATE TABLE `snips2pool` (
`content_id` int(11) unsigned NOT NULL,
`pool_id` int(11) unsigned NOT NULL,
KEY `pool_id` (`pool_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Table structure for table `contents_type`
--
DROP TABLE IF EXISTS `contents_type`;
CREATE TABLE `contents_type` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(20) collate utf8_unicode_ci NOT NULL,
`comments` varchar(100) collate utf8_unicode_ci NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Table structure for table `pool`
--
-- NOTA ADAPTACIÓ: Respecte a la versió inicial de la bd (8-10-2007) hi ha molts camps nous. Però les novetats afecten poc la funcionalitat. Per adaptar-se només cal canviar el nom del camp 'public' que ara és 'publicview' i tenir en compte que el camp 'config_pool_kind' (que no es feia servir) ja no existeix. Les funcions previstes pel 'config_pool_kind' s han repartit en diferents camps.
DROP TABLE IF EXISTS `pool`;
CREATE TABLE `pool` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`created_by` int(11) unsigned NOT NULL,
`last_change` timestamp (14) NOT NULL,
`date_creation` timestamp (14) NOT NULL,
`date_start` timestamp (14) NOT NULL COMMENT 'data-hora inici sessió, per defecte seria la mateixa que la data de creació però pot ser diferent si el que es vol és fer una convocatòria de sessió',
`date_stop` timestamp (14) NOT NULL COMMENT 'data-hora de tancament de la pool per si es vol fer una sessió que duri un temps determinat i es tanqui automaticament',
`group_permissions` varchar(255) NOT NULL COMMENT 'permissos per veure o editar segons tipus de usuari',
`publicview` bool NOT NULL COMMENT 'si la sessió de wikipool serà o no visible en portada',
`status` bool NOT NULL COMMENT 'si la sessio esta oberta/editable (1) o tancada (0). En realitat ho podem saber per date_stop i també es pot regular per group_permisions pero aquest es un camp boolea facil i rapid de consultar, encara que sigui redundant',
`size` varchar(100) NOT NULL COMMENT 'mida de la pool en píxels',
`css` text NOT NULL,
`maxsnips` int(4) NOT NULL COMMENT 'nombre maxim de retalls, negatiu es que no hi ha límit',
`snipsmode` bool NOT NULL COMMENT 'Pot ser Mode reciclatge (0) i Mode Acumulació (1). Reciclatge:cada contingut incorporat substitueix el contingut més vell. Acumulació: Cada contingut incorporat crea un nou retall (snip)',
`text` bool Not null COMMENT 'Valor booleà que controla si es pot incorporar-editar text (1) o no (0)',
`imgsrc` bool Not null COMMENT 'Valor booleà que controla si es poden incorporar imatges per referència profunda (1) o no (0)',
`upload` bool not null COMMENT 'Valor booleà que controla si es poden carregar fitxers (1) o no (0)',
`uploadfiles` varchar(100) COMMENT 'En cas que upload sigui igual a 1 aquest camp serveix per definir quins formats de fitxer es poden pujar. Els formats es separen per comes i s han d extreure per explode. Exemple: png, jpeg, jpg, svg, gif',
`uploadmaxsize` int(4) unsigned COMMENT 'En cas que upload sigui igual a 1 aquest camp serveix per definir el pes màxim de memòria que poden tenir els fitxers pujats. En principi ho posem en Kb, per això deixem un enter de 4 decimals',
`startmode` varchar(100) COMMENT 'Només es fa servir el primer cop que s obra. Pot ser BLANK, CASUAL o RECYCLED segons si volem que comenci sense continguts, amb una tria aleatoria de continguts a partir de una paraula o a partir d un determinat punt del historial de una altra Pool. Si escollim CASUAL va combinat amb el camp Casual_search. Es guarda en BD per les pools que es creen però no s activen al moment. També com a metadada de la pool',
`casual_search` varchar(255) COMMENT 'Expressió introduida per el usuari en cas de haver escollit CASUAL com a Startmode',
KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
--
-- Table structure for table `stats_events`
--
DROP TABLE IF EXISTS `stats_events`;
CREATE TABLE `stats_events` (
`id` int(11) NOT NULL auto_increment,
`date` date NOT NULL,
`pool_id` int(11) NOT NULL,
`content_id` int(11) NOT NULL,
`content_type` int(11) NOT NULL,
`event_kind` int(11) NOT NULL COMMENT 'com ara: moviment, resize, etc...',
`event_data` varchar(255) collate latin1_general_cs NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL auto_increment,
`username` varchar(255) collate utf8_unicode_ci NOT NULL,
`comment` mediumtext collate utf8_unicode_ci NOT NULL,
`passw` varchar(255) collate utf8_unicode_ci NOT NULL,
`usergroup` int(11) unsigned NULL COMMENT 'grup al que pertany usuari, correspon a id taula Usergroups',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` (username,usergroup,comment) VALUES ('anonymous',1,'anonymous, unregistred user');
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usergroups`
--
DROP TABLE IF EXISTS `usergroups`;
CREATE TABLE `usergroups` (
`group_id` int(11) unsigned NOT NULL auto_increment,
`groupname` varchar(255) collate utf8_unicode_ci NOT NULL,
`comment` mediumtext collate utf8_unicode_ci NULL,
KEY `group_id` (`group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- Dumping data for table `usergroups`
-- Default groups
LOCK TABLES `usergroups` WRITE;
/*!40000 ALTER TABLE `usergroups` DISABLE KEYS */;
INSERT INTO `usergroups` (groupname, comment) VALUES ('*','any user'),('ruser','registred user'), ('admin','administrator');
/*!40000 ALTER TABLE `usergroups` ENABLE KEYS */;
UNLOCK TABLES;

