codice:
create table UTENTE
(
User_Id varchar(20) not null primary key,
Nome varchar(20) not null,
Cognome varchar(20) not null,
Data_Nascita date not null,
Citta varchar(30) not null,
Indirizzo varchar(50) not null
) type=InnoDB;
create table INSERZIONE
(
Id_Oggetto int not null auto_increment primary key,
Titolo varchar(60) not null,
Descrizione text,
Costo_Base float(4,2),
Scadenza datetime,
Compralo_Subito float(4,2),
Id_Venditore varchar(20) not null references UTENTE(User_Id),
Id_Categoria varchar(30) not null references CATEGORIA(Id_Categoria)
) type=InnoDB;
create table FOTO
(
Id_Foto int not null auto_increment primary key,
Titolo varchar(50) not null,
Descrizione varchar(255) not null,
Link_File varchar(255) not null,
Id_Oggetto int not null,
foreign key(Id_Oggetto) references INSERZIONE(Id_Oggetto)
) type=InnoDB;
create table OFFERTA
(
Id_Offerta int not null auto_increment primary key,
Partecipante varchar(20) not null,
Id_Oggetto int not null,
Valore_Offerta float(4,2) not null,
Data datetime not null,
foreign key (Partecipante) references UTENTE(User_Id),
foreign key (Id_Oggetto) references INSERZIONE(Id_Oggetto)
) type=InnoDB;
create table CATEGORIA
(
Id_Categoria int not null auto_increment primary key,
Nome_Cat varchar(40) not null,
Descrizione varchar(255) not null,
Padre int references CATEGORIA(Id_Categoria)
) type=InnoDB;
create table AMMINISTRATORE
(
Username varchar(20) not null primary key,
Nome varchar(20) not null,
Cognome varchar(20) not null,
Citta varchar(30) not null,
Indirizzo varchar(50) not null
) type=InnoDB;
create table AMMINISTRA
(
Admin varchar(20) not null,
Id_Categoria int not null,
Inizio_Amministrazione datetime,
foreign key (Admin) references AMMINISTRATORE(Username),
foreign key (Id_Categoria) references CATEGORIA(Id_Categoria),
primary key (Admin, Id_Categoria)
) type=InnoDB;
create table MESSAGGIO
(
Id_Messaggio int not null auto_increment primary key,
Mitt varchar(20) not null references UTENTE(User_Id),
Dest varchar(20) not null references UTENTE(User_Id),
Data datetime not null,
Testo text not null
) type=InnoDB;
create table ACQUISTI
(
Id_Oggetto int not null primary key references INSERZIONE(Id_Oggetto),
Acquirente varchar(20) not null references UTENTE(User_Id),
Spesa float(4,2) not null,
Data datetime not null
) type=InnoDB;
create table COMMENTO
(
Id_Commento int not null primary key,
Commentatore varchar(20) not null,
Oggetto_Commentato int not null,
Data datetime not null,
Commento text not null,
foreign key (Commentatore) references UTENTE(User_Id),
foreign key (Oggetto_Commentato) references INSERZIONE(Id_Oggetto)
) type=InnoDB;
create table FEEDBACKVENDITORE
(
Id_Oggetto int not null references INSERZIONE(Id_Oggetto),
Id_Venditore varchar(20) not null references UTENTE(User_Id),
Id_Acquirente varchar(20) not null references UTENTE(User_Id),
Feedback enum('Positivo', 'Neutro', 'Negativo') not null,
Commento varchar(255),
primary key (Id_Oggetto)
) type=InnoDB;
create table FEEDBACKACQUIRENTE
(
Id_Oggetto int not null references INSERZIONE(Id_Oggetto),
Id_Acquirente varchar(20) not null references UTENTE(User_Id),
Id_Venditore varchar(20) not null references UTENTE(User_Id),
Feedback enum('Positivo', 'Neutro', 'Negativo') not null,
Commento varchar(255),
primary key (Id_Oggetto)
) type=InnoDB;
Come potete vedere la tabella AMMINISTRA contiene una foreign key che punta verso AMMINISTRATORE.