Está en la página 1de 3

CREATE DATABASE Mouro;

USE Mouro;

CREATE TABLE Empleados (


DNI varchar(9) NOT NULL,
Nombre varchar(25) NOT NULL,
Apellidos varchar(50) NOT NULL,
Direccion varchar(50) NOT NULL,
Ciudad varchar(25) NOT NULL,
Telefono varchar(9) NOT NULL,
CP tinyint(5) NOT NULL,
FechaAlta date NOT NULL,
Categoria varchar(25) NOT NULL,
Salario DECIMAL(6,2) NOT NULL,
PRIMARY KEY (DNI)
);

CREATE TABLE cocineros (


DNI varchar(9) NOT NULL,
Puesto varchar(25),
Especialidad varchar(25),
PRIMARY KEY(DNI),
FOREIGN KEY (DNI) REFERENCES Empleados(DNI) ON UPDATE CASCADE
);

CREATE TABLE administracion (


DNI varchar(9) NOT NULL,
Cargo varchar(25) NOT NULL,
PRIMARY KEY(DNI),
FOREIGN KEY (DNI) REFERENCES Empleados(DNI) ON UPDATE CASCADE
);

CREATE TABLE Camareros (


DNI varchar(9) NOT NULL,
TURNO varchar(25) NOT NULL,
ANOS int,
DNI_ENCARGADO varchar(9) NOT NULL,
PRIMARY KEY(DNI),
FOREIGN KEY (DNI) REFERENCES Empleados(DNI) ON UPDATE CASCADE,
FOREIGN KEY (DNI_Encargado) REFERENCES Empleados(DNI) ON UPDATE CASCADE
);

CREATE TABLE Comedores (


CodigoC int NOT NULL,
Nombre varchar(20)NOT NULL,
Capacidad int NOT NULL,
Nmesas int NOT NULL,
Localizacion varchar(25),
PRIMARY KEY (CodigoC)
);

CREATE TABLE Mesas (


CodigoM int AUTO_INCREMENT NOT NULL,
CodigoC int NOT NULL,
Nasientos int,
DNI_Camarero varchar(9) NOT NULL,
PRIMARY KEY (CodigoM,CodigoC),
FOREIGN KEY (DNI_Camarero) REFERENCES Empleados(DNI) ON UPDATE CASCADE,
FOREIGN KEY (CodigoC) REFERENCES Comedores(CodigoC) ON UPDATE CASCADE
);

CREATE TABLE Reservas (


Nreserva int AUTO_INCREMENT NOT NULL,
Fhreserva DATETIME NOT NULL,
Nombre varchar(25) NOT NULL,
Fhreservada DATETIME NOT NULL,
Comida BIT,
Cena BIT,
Npersonas INT NOT NULL,
Varios varchar(50),
PRIMARY KEY (Nreserva)
);

CREATE TABLE Hacen (


CodigoM int AUTO_INCREMENT NOT NULL,
CodigoC int NOT NULL,
Nreserva int NOT NULL,
NasientosR int NOT NULL,
PRIMARY KEY (CodigoM,CodigoC,Nreserva),
FOREIGN KEY (CodigoM) REFERENCES MESAS(CodigoM) ON UPDATE CASCADE,
FOREIGN KEY (CodigoC) REFERENCES COMEDORES(CodigoC) ON UPDATE CASCADE,
FOREIGN KEY (Nreserva) REFERENCES RESERVAS(Nreserva) ON UPDATE CASCADE
);

CREATE TABLE FACTURAS (


Nfactura int AUTO_INCREMENT NOT NULL,
FechaF DATETIME NOT NULL,
CodigoM int,
CodigoC int,
PRIMARY KEY (Nfactura),
FOREIGN KEY (CodigoM) REFERENCES MESAS(CodigoM),
FOREIGN KEY (CodigoC) REFERENCES COMEDORES(CodigoC)
);

CREATE TABLE PLATOS (


CodigoPl int NOT NULL,
Nombre varchar(25) NOT NULL,
Descripcion varchar(50) NOT NULL,
Tipo varchar(25) NOT NULL,
Precio DECIMAL NOT NULL,
PRIMARY KEY (CodigoPL)
);

CREATE TABLE Incluyen (


Nfactura int NOT NULL,
CodigoPl int NOT NULL,
Unidades int NOT NULL,
PRIMARY KEY (Nfactura,CodigoPl),
FOREIGN KEY (CodigoPl) REFERENCES PLATOS(CodigoPl) ON UPDATE CASCADE,
FOREIGN KEY (Nfactura) REFERENCES FACTURAS(Nfactura) ON UPDATE CASCADE
);

CREATE TABLE PROVEEDORES (


CodigoPro int NOT NULL,
Direccion varchar(25) NOT NULL,
CP tinyint(5) NOT NULL,
Telefono varchar(9) NOT NULL,
Fax varchar(9) NOT NULL,
Contacto varchar(25) NOT NULL,
PRIMARY KEY (CodigoPro)
);

CREATE TABLE PRODUCTOS (


CodigoPR int AUTO_INCREMENT NOT NULL,
Descripcion varchar(25) NOT NULL,
Stock int NOT NULL,
UnidadBase int NOT NULL,
PrecioU decimal NOT NULL,
Categoria varchar(25) NOT NULL,
CodigoPro int NOT NULL,
PRIMARY KEY (CodigoPR),
FOREIGN KEY (CodigoPro) REFERENCES PROVEEDORES(CodigoPro) ON UPDATE CASCADE
);

CREATE TABLE Contienen (


CodigoPl int NOT NULL,
CodigoPR int NOT NULL,
Cantidad decimal NOT NULL,
FOREIGN KEY (CodigoPl) REFERENCES PLATOS(CodigoPl) ON UPDATE CASCADE,
FOREIGN KEY (CodigoPr) REFERENCES PRODUCTOS(CodigoPr) ON UPDATE CASCADE
);

También podría gustarte