A continuació especificarem les sentencies de creació de taules per al sistema de gestió de bases de dades MySQL.
# Creacio de la taula USUARI
CREATE TABLE Usuari
(
U_Codi INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
U_Nom VARCHAR(25) NOT NULL,
U_Cognom1 VARCHAR(25) NOT NULL,
U_Cognom2 VARCHAR(25),
U_NIF VARCHAR(10) NOT NULL,
U_Telefon INTEGER NOT NULL,
U_Adreca VARCHAR(100) NOT NULL,
U_Codi_postal VARCHAR(5) NOT NULL,
U_Poblacio VARCHAR(50) NOT NULL,
U_Provincia VARCHAR(25) NOT NULL,
U_Email VARCHAR(60) NOT NULL,
U_Targeta VARCHAR(20) NOT NULL,
)TYPE = MyISAM;
# Creacio de la taula RESERVA
CREATE TABLE Reserva
(
R_Codi INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
R_Data_reserva DATE NOT NULL,
R_Data_inici DATE NOT NULL,
R_Data_fi DATE NOT NULL,
R_Usuari INTEGER NOT NULL,
R_Allotjament INTEGER NOT NULL,
CONSTRAINT R_check CHECK
((R_Data_inici < R_Data_fi) AND (SYSDATE() <= R_Data_inici))
)TYPE = MyISAM;
# Creacio de la taula COMPLEX_RURAL
CREATE TABLE Complex_rural
(
CR_Codi INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
CR_Nom VARCHAR(100) NOT NULL,
CR_Telefon INTEGER,
CR_Email VARCHAR(60),
CR_Adreca VARCHAR(100) NOT NULL,
CR_Codi_postal VARCHAR(5) NOT NULL,
CR_Poblacio VARCHAR(50) NOT NULL,
CR_Provincia VARCHAR(25) NOT NULL,
CR_Tipus_allotjament VARCHAR(30) NOT NULL,
CR_Empresari_hostaler INTEGER NOT NULL,
CR_Actiu INT(1) DEFAULT '0' NOT NULL,
CR_Descripcio VARCHAR(300),
CR_Imatge BLOB,
CR_Tipus_imatge VARCHAR(100)
)TYPE = MyISAM;
# Creacio de la taula ALLOTJAMENT
CREATE TABLE Allotjament
(
A_Codi INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
A_Capacitat INTEGER NOT NULL,
A_Preu_talta INTEGER NOT NULL,
A_Preu_tbaixa INTEGER NOT NULL,
A_Complex_rural INTEGER NOT NULL,
A_Quantitat INTEGER NOT NULL,
A_Descripcio VARCHAR(200)
)TYPE = MyISAM;
# Creacio de la taula EMPRESARI_HOSTALER
CREATE TABLE Empresari_hostaler
(
EH_Codi INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
EH_Nom VARCHAR(25) NOT NULL,
EH_Cognom1 VARCHAR(25) NOT NULL,
EH_Cognom2 VARCHAR(25),
EH_NIF VARCHAR(15) NOT NULL,
EH_Telefon INTEGER NOT NULL,
EH_Adreca VARCHAR(100) NOT NULL,
EH_Codi_postal VARCHAR(5) NOT NULL,
EH_Poblacio VARCHAR(50) NOT NULL,
EH_Provincia VARCHAR(25) NOT NULL,
EH_Email VARCHAR(60) NOT NULL,
EH_Password VARCHAR(25) NOT NULL,
EH_Actiu INT(1) DEFAULT '1' NOT NULL,
CONSTRAINT EH_Email_key UNIQUE (EH_Email)
)TYPE = MyISAM;
# Definim les claus alienes
ALTER TABLE Reserva ADD FOREIGN KEY (R_Usuari)
REFERENCES Usuari (U_Codi)
ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE Reserva ADD FOREIGN KEY (R_Allotjament)
REFERENCES Allotjament (A_Codi)
ON UPDATE CASCADE ON DELETE RESTRICT;
ALTER TABLE Complex_rural ADD FOREIGN KEY (CR_Empresari_hostaler)
REFERENCES Empresari_hostaler (EH_Codi)
ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE Allotjament ADD FOREIGN KEY (A_Complex_rural)
REFERENCES COMPLEX_RURAL (CR_Codi)
ON UPDATE CASCADE ON DELETE CASCADE;