Ipotetico schema Logico del Modello E/R fatto in laboratorio
creazione tabella account
CREATE TABLE IF NOT EXISTS `account`
( `id_account` int(20) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
`password` varchar(50) NOT NULL,
`e-mail` varchar(50) NOT NULL,
PRIMARY KEY (`id_account`))
creazione tabella profilo
CREATE TABLE IF NOT EXISTS `profilo`
( `id_profilo` int(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id_profilo`)
)
creazione tabella proflo_account
CREATE TABLE IF NOT EXISTS `profilo_account`
( `id_profilo_account` int(20) NOT NULL AUTO_INCREMENT,
`id_profilo` int(20) NOT NULL,
`id_account` int(20) NOT NULL,
PRIMARY KEY (`id_profilo_account`),
FOREIGN KEY (id_profilo) REFERENCES profilo(id_profilo),
FOREIGN KEY (id_account) REFERENCES account(id_account))
creazione tabella profilo_permessi
CREATE TABLE IF NOT EXISTS `profilo_permessi`
( `id_profilo_permessi` int(20) NOT NULL AUTO_INCREMENT,
`id_profilo` int(20) NOT NULL,
`id_permessi` int(20) NOT NULL,
PRIMARY KEY (`id_profilo_permessi`),
FOREIGN KEY (id_profilo) REFERENCES profilo(id_profilo),
FOREIGN KEY (id_permessi) REFERENCES permessi(id_permessi))
creazione tabella funzionalità
CREATE TABLE IF NOT EXISTS `funzionalità`
( `id_funzionalità` int(20) NOT NULL AUTO_INCREMENT,
`elenco` varchar(50) NOT NULL,
`descrizione` varchar(50) NOT NULL,
PRIMARY KEY (`id_funzionalità`))
creazione tabella profilo_funzionalità
CREATE TABLE IF NOT EXISTS `profilo_funzionalità`
( `id_profilo_funzionalità` int(20) NOT NULL AUTO_INCREMENT,
`id_profilo` int(20) NOT NULL,
`id_funzionalità` int(20) NOT NULL,
PRIMARY KEY (`id_profilo_funzionalità`),
FOREIGN KEY (id_profilo) REFERENCES profilo(id_profilo);
FOREIGN KEY (id_funzionalità) REFERENCES funzionalità(id_funzionalità))
creazione tabella anagrafe
CREATE TABLE IF NOT EXISTS `anagrafe`
( `id_anagrafe` int(20) NOT NULL AUTO_INCREMENT,
`nome` varchar(30) NOT NULL,
`cognome` varchar(50) NOT NULL,
`denominazione` varchar(50) NOT NULL,
`note_descrittive` varchar(50) NOT NULL,
`data_di_nascita` date(2) NOT NULL,
`CF` varchar(25) NOT NULL,
`id_recapiti` int(20) NOT NULL,
PRIMARY KEY (`id_anagrafe`),
FOREIGN KEY (id_recapiti) REFERENCES recapiti(id_recapiti))
creazione tabella recapiti
CREATE TABLE IF NOT EXISTS `recapiti`
( `id_recapiti` int(20) NOT NULL AUTO_INCREMENT,
`telefono` int(11) NOT NULL,
`e-mail` varchar(50) NOT NULL,
PRIMARY KEY (`id_recapiti`))
creazione tabella indirizzo
CREATE TABLE IF NOT EXISTS `indirizzo`
( `id_indirizzo` int(20) NOT NULL AUTO_INCREMENT,
`numero_civico` int(6) NOT NULL,
`nome_comune` varchar(20) NOT NULL,
`id_comune` int(20) NOT NULL,
PRIMARY KEY (`id_indirizzo`)
FOREIGN KEY (id_comune) REFERENCES comune(id_comune))
creazione tabella anagrafe_indirizzo
CREATE TABLE IF NOT EXISTS `anagrafe_indirizzo`
( `id_anagrafe_indirizzo` int(20) NOT NULL AUTO_INCREMENT,
`id_anagrafe` int(20) NOT NULL,
`id_indirizzo` int(20) NOT NULL,
PRIMARY KEY (`id_anagrafe_indirizzo`),
FOREIGN KEY (id_anagrafe) REFERENCES anagrafe(id_anagrafe),
FOREIGN KEY (id_indirizzo) REFERENCES indirizzo(id_indirizzo))
creazione tabella comune
CREATE TABLE IF NOT EXISTS `comune`
( `id_comune` int(20) NOT NULL AUTO_INCREMENT,
`provincia` varchar(30) NOT NULL,
`regione` varchar(20) NOT NULL,
`cap` varchar(5) NOT NULL,
`com_fisc` varchar(50) NOT NULL,
`codice_istat` varchar(50) NOT NULL,
PRIMARY KEY (`id_comune`))