· 6 years ago · Dec 02, 2019, 02:49 PM
1drop database if EXISTS BibliotecaLello;
2create database BibliotecaLello;
3use BibliotecaLello;
4
5create table Lettore
6(
7 CodiceFiscale varchar(17) PRIMARY KEY not null
8);
9
10create TABLE Tessera
11(
12 CodiceLettore varchar(17),
13 CodiceTessera integer PRIMARY KEY not null AUTO_INCREMENT,
14 Nome varchar(10) not null,
15 Cognome varchar(10) not null,
16 unique(Nome, Cognome)
17);
18
19create table Autori
20(
21 IDAutore integer PRIMARY KEY NOT null AUTO_INCREMENT,
22 Nome varchar(20) not null,
23 Cognome varchar(20) not null
24);
25
26create table Libro
27(
28 CodiceLibro integer AUTO_INCREMENT PRIMARY KEY not null,
29 IDAutore integer not null,
30 Titolo varchar(20) not null
31);
32
33create table Copia
34(
35 CodiceLibro integer not null,
36 CodiceCopia integer not null,
37 unique(CodiceLibro, CodiceCopia)
38);
39
40create table Noleggio
41(
42 CodiceLettore varchar(17) not null,
43 DataInizio date not null,
44 DataFine date not null,
45 CodiceLibro integer not null,
46 CodiceCopia integer not null,
47 unique(CodiceLettore, DataInizio, DataFine, CodiceLibro, CodiceCopia)
48);
49
50alter table Noleggio add CONSTRAINT fkNolleggioLettore
51FOREIGN key (CodiceLettore)
52REFERENCES `Lettore`(`CodiceFiscale`) on DELETE CASCADE on UPDATE CASCADE;
53
54alter table Tessera add CONSTRAINT fkTesseraLettori
55FOREIGN KEY (`CodiceLettore`)
56REFERENCES `Lettore`(`CodiceFiscale`) on DELETE CASCADE on UPDATE cascade;
57
58alter table Libro add CONSTRAINT fkLibroAutori
59FOREIGN KEY (IDAutore)
60REFERENCES `Autori`(`IDAutore`) on DELETE CASCADE on UPDATE cascade;
61
62alter table `Copia` add CONSTRAINT fkCopieLibro
63FOREIGN KEY (CodiceLibro)
64REFERENCES Libro(CodiceLibro) on DELETE CASCADE on UPDATE cascade;
65
66alter table Noleggio add CONSTRAINT fkNoleggioCopiaCopia
67FOREIGN KEY (CodiceCopia)
68REFERENCES `Copia`(`CodiceCopia`) on DELETE CASCADE on UPDATE cascade;
69
70alter table Noleggio add CONSTRAINT fkNoleggioCopiaLibro
71FOREIGN KEY (CodiceLibro)
72REFERENCES `Copia`(`CodiceLibro`) on DELETE CASCADE on UPDATE cascade;