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 agenda, meeting, consultazione certificata, discussione informata e delle risorse.
Infine la tabella wiki_documents è evidenziata in rosso perchè rappresenta l'insieme delle tabelle ereditate dal sistema di wiki.



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;





indietro - avanti