======Modello ER generale ====== \\ Il modello ER permette di capire la struttura delle tabelle che compongono gli strumenti di openDCN.\\ //Nota//:\\ in ogni schema vengono riportate solo le chiavi primarie e gli attributi più utili nell'identificare le relazioni tra le entità.\\ Di seguito al modello verranno riportati i codici SQL utilizzati per creare le tabelle all'interno del database del sistema.\\ \\ Le entità evidenziate in azzurro sono quelle principali/fondamentali; quelle evidenziate in verde (con il doppio bordo) rappresentano i sottoinsiemi degli strumenti [[l'agenda | agenda]], [[il meeting online | meeting]], [[la consultazione certificata | consultazione certificata]], [[la di | discussione informata]] e delle [[le risorse | risorse]].\\ Infine la tabella wiki_documents è evidenziata in rosso perchè rappresenta l'insieme delle tabelle ereditate dal sistema di wiki. \\ {{:generale_er2.jpg|}} ---- \\ SQL delle tabelle: \\ \\ **USERS** \\ CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(255) NOT NULL default '', `password` varchar(36) NOT NULL default '', `first_name` varchar(255) default '', `last_name` varchar(255) default '', `email` varchar(255) NOT NULL default '', `showemail` tinyint(1) NOT NULL default '0', `admin` tinyint(1) NOT NULL default '0', `active` tinyint(1) NOT NULL default '0', `created` datetime default NULL, `modified` datetime default NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **GEOMAP** - Caratteristiche della mappa utilizzata e riferimento allo strumento che la utilizza. \\ CREATE TABLE IF NOT EXISTS `geomap` ( `id` int(10) unsigned NOT NULL auto_increment, `label` mediumtext collate utf8_unicode_ci, `boundingBox` geometry NOT NULL, `owner` mediumtext collate utf8_unicode_ci NOT NULL, `owner_id` int(11) NOT NULL, `maptype` mediumtext collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ---- \\ **GROUP USERS** \\ CREATE TABLE IF NOT EXISTS `groups_users` ( `group_id` int(10) unsigned NOT NULL default '0', `user_id` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`group_id`,`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; \\ **GROUPS** \\ CREATE TABLE IF NOT EXISTS `groups` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(45) collate latin1_general_ci NOT NULL default '', `description` text collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; \\ **RATING** - Contiene le votazioni fatte dagli utenti registrati e non. \\ CREATE TABLE IF NOT EXISTS `rating` ( `id` int(11) NOT NULL auto_increment, `owner` varchar(255) NOT NULL, `owner_id` int(11) NOT NULL, `agreement` int(11) default NULL, `relevance` int(11) default NULL, `user_id` int(11) NOT NULL, `anonymous_id` int(11) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **AVATARS** \\ CREATE TABLE IF NOT EXISTS `avatars` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) default NULL, `size` int(11) default NULL, `type` varchar(255) default NULL, `width` int(11) default NULL, `height` int(11) default NULL, `created` datetime NOT NULL default '0000-00-00 00:00:00', `modified` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `user_id` (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **BLOCKSETS** - Caratteristiche del blockset che andrà a formare la struttura della pagina. \\ CREATE TABLE IF NOT EXISTS `blocksets` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL default '', `description` text character set latin1 collate latin1_general_ci NOT NULL, `template` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **PATHS** - Tabella che raccoglie l'indirizzo relativo ad ogni blockset. \\ CREATE TABLE IF NOT EXISTS `paths` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(255) NOT NULL default '', `blockset_id` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **BLOCKSETS BLOCKS** \\ CREATE TABLE IF NOT EXISTS `blocksets_blocks` ( `blockset_id` int(10) unsigned NOT NULL auto_increment, `area` varchar(32) NOT NULL default '', `weight` smallint(5) unsigned NOT NULL default '0', `block_id` int(10) unsigned NOT NULL default '0', PRIMARY KEY USING BTREE (`blockset_id`,`block_id`,`area`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **BLOCKS** \\ CREATE TABLE IF NOT EXISTS `blocks` ( `id` int(10) unsigned NOT NULL auto_increment, `title` varchar(64) NOT NULL default '', `description` text character set latin1 collate latin1_general_ci NOT NULL, `owner` varchar(64) NOT NULL default '', `content_type` varchar(64) NOT NULL default '0', `content_id` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **ROLES** - Nome e descrizione dei ruoli affidabili agli utenti. \\ CREATE TABLE IF NOT EXISTS `roles` ( `id` int(10) unsigned NOT NULL auto_increment, `owner` varchar(255) NOT NULL, `object` varchar(255) NOT NULL, `role` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `type_id` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **MENU** \\ CREATE TABLE IF NOT EXISTS `menu` ( `id` int(11) NOT NULL auto_increment, `parent` int(11) NOT NULL default '0', `left` int(11) NOT NULL default '0', `right` int(11) NOT NULL default '0', `title` varchar(64) default NULL, `link` varchar(255) default NULL, `owner` varchar(64) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; \\ **PERMISSIONS** \\ CREATE TABLE IF NOT EXISTS `permissions` ( `id` int(10) unsigned NOT NULL auto_increment, `owner` varchar(45) NOT NULL default '', `subject` varchar(45) NOT NULL default '', `action` varchar(45) NOT NULL default '', `object` varchar(45) NOT NULL default '', `weight` smallint(5) unsigned NOT NULL default '0', `grant` tinyint(1) unsigned NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **CONTENTS** \\ CREATE TABLE IF NOT EXISTS `contents` ( `id` int(11) NOT NULL auto_increment, `title` text, `content` text, `visible` tinyint(4) NOT NULL default '0', `enable_html` tinyint(4) NOT NULL default '0', `strip_tags` tinyint(4) NOT NULL default '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **WIKI DOCUMENTS** - Informazioni sui documenti inseriti nel wiki. \\ CREATE TABLE IF NOT EXISTS `wiki_documents` ( `id` int(10) unsigned NOT NULL auto_increment, `title` varchar(255) NOT NULL, `status` tinyint(3) unsigned NOT NULL, `tool` varchar(45) NOT NULL, `tool_id` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **SUBSCRIBERS** - Tabella che racchiude gli utenti che hanno sottoscritto la notifica di messaggi. \\ CREATE TABLE IF NOT EXISTS `subscribers` ( `id` int(10) unsigned NOT NULL auto_increment, `owner` text NOT NULL, `subject` text NOT NULL, `action` text NOT NULL, `owner_id` text NOT NULL, `object` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **LOGS** - Tabella che registra i movimenti degli utenti. \\ CREATE TABLE IF NOT EXISTS `logs` ( `id` int(10) unsigned NOT NULL auto_increment, `owner` varchar(45) NOT NULL, `subject` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `object` varchar(255) NOT NULL, `path` varchar(255) NOT NULL, `created` datetime NOT NULL, `message` text NOT NULL, `type` varchar(45) NOT NULL, `ip` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **TEXTS** \\ CREATE TABLE IF NOT EXISTS `texts` ( `id` int(11) NOT NULL auto_increment, `name` text NOT NULL, `text` text NOT NULL, `date_creation` datetime NOT NULL, `date_modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `language` varchar(3) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **TOKENS** \\ CREATE TABLE IF NOT EXISTS `tokens` ( `id` int(11) NOT NULL auto_increment, `token` char(32) character set utf8 collate utf8_unicode_ci NOT NULL, `user_id` int(11) NOT NULL, `expiration` int(10) unsigned NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`), UNIQUE KEY `token` (`token`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ **VARIABLES** \\ CREATE TABLE IF NOT EXISTS `variables` ( `id` int(10) unsigned NOT NULL auto_increment, `owner` varchar(45) NOT NULL, `name` varchar(255) NOT NULL, `value` text NOT NULL, `type` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; \\ \\ \\ \\ [[creare un nuovo strumento | indietro]] - [[l'agenda | avanti]]