next up previous contents
Next: Regles de negoci Up: Disseny físic Previous: Esquema lògic final   Índex

Creació de taules

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;



david AT cdecdf.com 2007-08-26


Alojamiento con 500GB de espacio y 5000GB de ancho de banda por 4 euros al mes
Cómo contratar servicios de hosting con Dreamhost
Descuento, promocode para dreamhost de $50