lunes, 31 de agosto de 2009

DDL Version 1

POR PROBLEMAS CON EL MYSQL ESTA SIN RELACIONES, PENDIENTE DE ARREGLAR

CREATE TABLE Persona(
ID_Persona CHAR(15) NOT NULL,
Primer_Nombre VARCHAR(20) NOT NULL,
Segundo_Nombre VARCHAR(20),
Primer_Apellido VARCHAR(20) NOT NULL,
Segundo_Apellido VARCHAR(20),
Direccion VARCHAR(150),
Sexo CHAR(1) NOT NULL,
PRIMARY KEY(ID_Persona),
CHECK(Sexo in('M','F')));

CREATE TABLE EMPLEADO(
ID_Empleado CHAR(15),
Puesto VARCHAR(15),
PRIMARY KEY(ID_Empleado));

CREATE TABLE Cliente(
ID_Cliente CHAR(15),
Tipo_Cliente CHAR(7),
PRIMARY KEY(ID_Cliente),
CHECK(Tipo_Cliente in('Credito','Contado')));

CREATE TABLE Modulo(
ID_Modulo INT NOT NULL,
Descripcion VARCHAR(50),
PRIMARY KEY(ID_Modulo));

CREATE TABLE Usuario(
ID_Usuario VARCHAR(10) NOT NULL,
Contrasenia VARCHAR(15) NOT NULL,
ID_Empleado CHAR(15),
Pregunta_Secreta VARCHAR(50) NOT NULL,
Respuesta_Secreta VARCHAR(50) NOT NULL,
Ultimo_Ingreso TIMESTAMP NOT NULL,
PRIMARY KEY(ID_Usuario));

CREATE TABLE Accesa(
ID_Usuario VARCHAR(10),
ID_Modulo INT,
PRIMARY KEY(ID_Usuario, ID_Modulo));

CREATE TABLE Pedido(
ID_Pedido INT NOT NULL AUTO_INCREMENT,
ID_Empleado CHAR(15),
ID_Cliente CHAR(15),
Fecha_Pedido TIMESTAMP,
Descripcion VARCHAR(50),
Total FLOAT,
PRIMARY KEY(ID_Pedido));

CREATE TABLE Proveedor(
Nombre_Empresa VARCHAR(30) NOT NULL,
Tipo_Producto VARCHAR(20),
Correo VARCHAR(30),
Direccion VARCHAR(150),
PRIMARY KEY(Nombre_Empresa));

CREATE TABLE Telefono_Persona(
ID_Persona CHAR(15),
Telefono CHAR(10) NOT NULL,
PRIMARY KEY(ID_Persona, Telefono));

CREATE TABLE Telefono_Proveedor(
Nombre_Empresa VARCHAR(30),
Telefono CHAR(10) NOT NULL,
PRIMARY KEY(Nombre_Empresa, Telefono));

CREATE TABLE Producto(
ID_Producto INT NOT NULL,
Nombre_Producto VARCHAR(20) NOT NULL,
Nombre_Empresa VARCHAR(30) NOT NULL,
Costo_Unitario FLOAT NOT NULL,
Precio_Unitario FLOAT NOT NULL,
Unidad_Medida VARCHAR(15) NOT NULL,
PRIMARY KEY(ID_Producto));

CREATE TABLE Bodega(
ID_Bodega INT NOT NULL,
Descripcion VARCHAR(50),
PRIMARY KEY(ID_Bodega));

CREATE TABLE Compra(
ID_Compra INT NOT NULL AUTO_INCREMENT,
ID_Empleado CHAR(15),
Fecha_Compra TIMESTAMP,
Total FLOAT,
PRIMARY KEY(ID_Compra));

CREATE TABLE Adquiere(
ID_Compra INT,
ID_Producto INT,
Cantidad INT NOT NULL,
PRIMARY KEY(ID_Compra, ID_Producto));

CREATE TABLE De(
ID_Pedido INT,
ID_Producto INT,
Cantidad INT NOT NULL,
PRIMARY KEY(ID_Pedido, ID_Producto));

CREATE TABLE Factura(
ID_Factura INT NOT NULL AUTO_INCREMENT,
ID_Empleado CHAR(15),
ID_Pedido INT,
Fecha_Factura TIMESTAMP NOT NULL,
ISV FLOAT NOT NULL,
Total FLOAT NOT NULL,
PRIMARY KEY(ID_Factura));

CREATE TABLE Existe_En(
ID_Factura INT,
ID_Producto INT,
Cantidad INT NOT NULL,
SubTotal FLOAT,
PRIMARY KEY(ID_Factura, ID_Producto));

CREATE TABLE Cuentas_Cobrar(
Num_Documento INT NOT NULL AUTO_INCREMENT,
ID_Cliente CHAR(15),
ID_Empleado CHAR(15),
ID_Factura INT,
Monto_Pagado FLOAT,
Monto_Pendiente FLOAT,
Fecha_Limite TIMESTAMP NOT NULL,
PRIMARY KEY(Num_Documento));

CREATE TABLE Cuentas_Pagar(
Num_Documento INT NOT NULL AUTO_INCREMENT,
Nombre_Empresa VARCHAR(30),
ID_Empleado CHAR(15),
ID_Compra INT,
Monto_Pagado FLOAT,
Monto_Pendiente FLOAT,
Fecha_Limite TIMESTAMP NOT NULL,
PRIMARY KEY(Num_Documento));

CREATE TABLE Inventario(
Correlativo INT NOT NULL AUTO_INCREMENT,
ID_Producto INT,
ID_Bodega INT,
Fecha_Inventario TIMESTAMP NOT NULL,
Cantidad_Inicial INT,
Cantidad_Ingreso INT,
Cantidad_Salida INT,
Cantidad_Final INT,
Tipo_Operacion VARCHAR(15),
PRIMARY KEY(Correlativo, ID_Producto));

No hay comentarios:

Publicar un comentario