Ejercicio 1:
CREATE TABLE fabricante (
codigo INT(10) NOT NULL,
nombre VARCHAR(100) NOT NULL,
PRIMARY KEY (codigo)
CREATE TABLE producto (
codigo INT(10),
nombre VARCHAR(100) NOT NULL,
precio DOUBLE NOT NULL,
codigo_fabricante INT(10),
Primary key (codigo),
FOREIGN KEY (codigo_fabricante) REFERENCES fabricante(codigo)
)
Ejercicio 2:
CREATE TABLE departamento (
codigo INT(10) not null,
nombre VARCHAR(100) NOT NULL,
presupuesto DOUBLE NOT NULL,
PRIMARY KEY (codigo)
create table Empleado (
Codigo INT(10) not null AUTO_INCREMENT,
nif VARCHAR (100) not null,
nombre VARCHAR(100)not null,
apellido1 VARCHAR(100)not null,
apellido2 VARCHAR(100),
codigo_departamento INT(10),
PRIMARY KEY(Codigo),
FOREIGN KEY(codigo_departamento)REFERENCES Departamento(Codigo)
)
Ejercicio 3:
Ejercicio 4:
-- Tabla gama_producto
CREATE TABLE gama_producto (
gama VARCHAR(50) PRIMARY KEY,
descripcion_texto TEXT NOT NULL,
descripcion_html TEXT NOT NULL,
imagen VARCHAR(256)
);
-- Tabla producto
CREATE TABLE producto (
codigo_producto VARCHAR(15) PRIMARY KEY,
nombre VARCHAR(70) NOT NULL,
gama VARCHAR(50) NOT NULL,
dimensiones VARCHAR(25) NOT NULL,
proveedor VARCHAR(50) NOT NULL,
descripcion TEXT NOT NULL,
cantidad_en_stock SMALLINT NOT NULL,
precio_venta DECIMAL(15,2) NOT NULL,
precio_proveedor DECIMAL(15,2) NOT NULL,
FOREIGN KEY (gama) REFERENCES gama_producto(gama)
);
-- Tabla cliente
CREATE TABLE cliente (
codigo_cliente INT PRIMARY KEY,
nombre_cliente VARCHAR(50) NOT NULL,
nombre_contacto VARCHAR(30) NOT NULL,
apellido_contacto VARCHAR(30) NOT NULL,
telefono VARCHAR(15) NOT NULL,
fax VARCHAR(15),
linea_direccion1 VARCHAR(50) NOT NULL,
linea_direccion2 VARCHAR(50),
ciudad VARCHAR(50) NOT NULL,
region VARCHAR(50),
pais VARCHAR(50) NOT NULL,
codigo_postal VARCHAR(10),
codigo_empleado_rep_ventas INT,
limite_credito DECIMAL(15,2),
FOREIGN KEY (codigo_empleado_rep_ventas) REFERENCES empleado(codigo_empleado)
);
-- Tabla pago
CREATE TABLE pago (
codigo_cliente INT NOT NULL,
forma_pago VARCHAR(40) NOT NULL,
id_transaccion VARCHAR(50) NOT NULL,
fecha_pago DATE NOT NULL,
total DECIMAL(15,2) NOT NULL,
PRIMARY KEY (codigo_cliente, id_transaccion),
FOREIGN KEY (codigo_cliente) REFERENCES cliente(codigo_cliente)
);
-- Tabla pedido
CREATE TABLE pedido (
codigo_pedido INT PRIMARY KEY,
fecha_pedido DATE NOT NULL,
fecha_esperada DATE NOT NULL,
fecha_entrega DATE,
estado VARCHAR(15) NOT NULL,
comentarios TEXT,
codigo_cliente INT NOT NULL,
FOREIGN KEY (codigo_cliente) REFERENCES cliente(codigo_cliente)
);
-- Tabla detalle_pedido
CREATE TABLE detalle_pedido (
codigo_pedido INT NOT NULL,
codigo_producto VARCHAR(15) NOT NULL,
cantidad INT NOT NULL,
precio_unidad DECIMAL(15,2) NOT NULL,
numero_linea SMALLINT NOT NULL,
PRIMARY KEY (codigo_pedido, codigo_producto, numero_linea),
FOREIGN KEY (codigo_pedido) REFERENCES pedido(codigo_pedido),
FOREIGN KEY (codigo_producto) REFERENCES producto(codigo_producto)
);
-- Tabla oficina
CREATE TABLE oficina (
codigo_oficina VARCHAR(10) PRIMARY KEY,
ciudad VARCHAR(30) NOT NULL,
pais VARCHAR(50) NOT NULL,
region VARCHAR(50),
codigo_postal VARCHAR(10) NOT NULL,
telefono VARCHAR(20) NOT NULL,
linea_direccion1 VARCHAR(50) NOT NULL,
linea_direccion2 VARCHAR(50)
);
-- Tabla empleado
CREATE TABLE empleado (
codigo_empleado INT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
apellido1 VARCHAR(50) NOT NULL,
apellido2 VARCHAR(50),
extension VARCHAR(10) NOT NULL,
email VARCHAR(100) NOT NULL,
codigo_oficina VARCHAR(10) NOT NULL,
codigo_jefe INT,
puesto VARCHAR(50) NOT NULL,
FOREIGN KEY (codigo_oficina) REFERENCES oficina(codigo_oficina),
FOREIGN KEY (codigo_jefe) REFERENCES empleado(codigo_empleado)
);