Questa è una vecchia versione del documento!
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, ovvero quelle che sono più interconnesse con altre entità; quelle evidenziate in verde (con il doppio bordo) rappresentano invece i sottoinsiemi degli strumenti agenda, meeting, consultazione certificata, discussione informata e delle risorse.
SQL delle tabelle:
CREATE TABLE `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
CREATE TABLE `groups_users` ( `group_id` int(10) unsigned NOT NULL, `user_id` int(10) unsigned NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
CREATE TABLE `groups` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(45) collate latin1_general_ci NOT NULL, `description` tinytext collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
CREATE TABLE `rating` ( `id` int(11) NOT NULL auto_increment, `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
CREATE TABLE `blocksets` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL default '', `description` tinytext NOT NULL, `template` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `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;
CREATE TABLE `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 (`blockset_id`,`block_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `blocksets_blocks` DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(`blockset_id`, `block_id`, `area`);
CREATE TABLE `blocks` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL default '', `visible` text NOT NULL, `owner` varchar(64) NOT NULL default '', `handler` varchar(255) NOT NULL default '', `check` varchar(32) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM;
CREATE TABLE `roles` ( `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `owner` VARCHAR(255) NOT NULL, `object` VARCHAR(255) NOT NULL, `role` VARCHAR(255) NOT NULL, `user_id` INTEGER UNSIGNED NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM;
CREATE TABLE `menu` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `parent` INT NOT NULL , `left` INT NOT NULL , `right` INT NOT NULL , `title` varchar(50) NOT NULL, `link` varchar(50) NOT NULL ) ENGINE = MYISAM ;
CREATE TABLE `permissions` ( `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `owner` VARCHAR(45) NOT NULL, `subject` VARCHAR(45) NOT NULL, `action` VARCHAR(45) NOT NULL, `object` VARCHAR(45) NOT NULL, `grant` BOOLEAN NOT NULL, PRIMARY KEY(`id`) ) ENGINE = MYISAM;
CREATE TABLE `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;
CREATE TABLE `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; ALTER TABLE `wiki_documents` ADD COLUMN `status` TINYINT UNSIGNED NOT NULL AFTER `title`, ADD COLUMN `tool` VARCHAR(45) NOT NULL AFTER `status`, ADD COLUMN `tool_id` INTEGER UNSIGNED NOT NULL AFTER `tool`;
CREATE TABLE `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, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE `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, `ip` VARCHAR(45) NOT NULL, `created` datetime NOT NULL, `message` text NOT NULL, `type` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM; ALTER TABLE `logs` ADD COLUMN `ip` VARCHAR(45) NOT NULL AFTER `path`;
CREATE TABLE `texts` ( `id` INT NOT NULL , `name` TEXT NOT NULL , `text` TEXT NOT NULL , `date_creation` DATETIME NOT NULL , `date_modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `language` VARCHAR( 3 ) NOT NULL ) ENGINE = MYISAM ;
CREATE TABLE `tokens` ( `id` INT NOT NULL , `token` CHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL , `user_id` INT NOT NULL , `expiration` DATETIME NOT NULL , `created` DATETIME NOT NULL , `modified` DATETIME NOT NULL , PRIMARY KEY ( `id` ) , INDEX ( `token` , `user_id` ) ) ENGINE = MYISAM
CREATE TABLE `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;