Sunteți pe pagina 1din 4

\c postgres

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname =


'proyectois';

drop database proyectois;

create database proyectois;

\c proyectois

--GENERANDO TABLAS

CREATE TABLE USUARIO (


"id_usuario" VARCHAR(100) NOT NULL ,
"contrasena" VARCHAR(16) NOT NULL ,
"id_persona" VARCHAR(100) NOT NULL,
"tipo" VARCHAR(15) NOT NULL,
UNIQUE("id_persona"),
PRIMARY KEY("id_usuario")
);
CREATE TABLE PERSONA (
"identificacion" VARCHAR(100) NOT NULL ,
"tipo_ident" VARCHAR(20) NOT NULL ,
"nombre" VARCHAR(100) NOT NULL ,
"fecha_naci" DATE NOT NULL ,
"genero" VARCHAR(2) NOT NULL ,
"fecha_registro" DATE NOT NULL ,
"direccion" VARCHAR(60) NOT NULL ,
"direccion_entrega" VARCHAR(60) NOT NULL ,
"municipio" VARCHAR(10) NOT NULL ,
"email" VARCHAR(60) NULL ,
"telefono" VARCHAR(50) NULL ,
"movil" VARCHAR(50) NOT NULL ,
"persona_encargada" VARCHAR(100) NULL ,
"telefono_per_encargada" VARCHAR(50) NULL ,
PRIMARY KEY("identificacion")
);
CREATE TABLE PROVEEDOR (
"id_persona" VARCHAR(100) NOT NULL,
"tipo_prov" VARCHAR(20) NOT NULL,
PRIMARY KEY("id_persona")
);
CREATE TABLE PREFERENCIA (
"id_preferencia" SERIAL NOT NULL ,
"id_producto" INTEGER NULL ,
"descripcion" VARCHAR(255) NOT NULL ,
PRIMARY KEY("id_preferencia")
);
CREATE TABLE PREFIERE (
"preferencia_id_preferencia" INT NOT NULL ,
"persona_identificacion" VARCHAR(100) NOT NULL
);
CREATE TABLE COTIZACION (
"id_cotizacion" SERIAL NOT NULL ,
"fecha_cotizacion" DATE NOT NULL ,
"precio_normal" DOUBLE PRECISION NOT NULL ,
"descuento" DOUBLE PRECISION NOT NULL ,
"precio_sin_iva" DOUBLE PRECISION NOT NULL ,
"precio_total" DOUBLE PRECISION NOT NULL ,
"persona_identificacion" VARCHAR(100) NOT NULL ,
PRIMARY KEY("id_cotizacion")
);
CREATE TABLE PEDIDO (
"id_pedido" SERIAL NOT NULL ,
"fecha_pedido" DATE NOT NULL ,
"fecha_entrega" DATE NOT NULL ,
"estado_pedido" BIT(1) NOT NULL ,
"precio_normal" DOUBLE PRECISION NOT NULL ,
"descuento" DOUBLE PRECISION NOT NULL ,
"precio_sin_iva" DOUBLE PRECISION NOT NULL ,
"precio_total" DOUBLE PRECISION NOT NULL ,
"persona_identificacion" VARCHAR(100) NOT NULL ,
PRIMARY KEY("id_pedido")
);
CREATE TABLE PRODUCTO (
"id_producto" SERIAL NOT NULL,
"id_proveedor" VARCHAR(100) NOT NULL,
"cantidad" INTEGER NOT NULL,
"precio_normal" DOUBLE PRECISION NOT NULL ,
"descuento" DOUBLE PRECISION NOT NULL ,
"precio_sin_iva" DOUBLE PRECISION NOT NULL ,
--A cuanto lo compramos
"costo" DOUBLE PRECISION NOT NULL,
"tallaje" VARCHAR(100) NOT NULL ,
"genero" VARCHAR(2) NOT NULL ,
"ubicacion" VARCHAR(100) NOT NULL,
"marca" VARCHAR(100) NOT NULL,
"categoria" VARCHAR(100) NOT NULL,
"descripcion" VARCHAR(255) NOT NULL,
"imagen" VARCHAR(255) NOT NULL,
"barras" VARCHAR(255) NOT NUL,L
PRIMARY KEY("id_producto")
);
CREATE TABLE CONTIENEP (
"cantidad" INTEGER NOT NULL ,
"producto_id_producto" INT NOT NULL ,
"pedida_id_pedido" INT NOT NULL
);
CREATE TABLE CONTIENEC (
"cotizacion_id_cotizacion" INT NOT NULL ,
"producto_id_producto" INT NOT NULL
);
CREATE TABLE FACTURA (
"pedida_id_pedido" INT NOT NULL ,
"id_factura" SERIAL NOT NULL ,
PRIMARY KEY("pedida_id_pedido","id_factura")
);
CREATE TABLE MEDIDA (
);

CREATE TABLE BITACORA (


"num_bitacora" varcHAR(100) NOT NULL ,
"fecha" DATE NOT NULL ,
"hora" DATE NOT NULL ,
"usuario" varcHAR(100) NOT NULL ,
"tabla" varcHAR(100) NOT NULL ,
"llave" varcHAR(100) NOT NULL ,
PRIMARY KEY("num_bitacora","fecha","hora")
);
CREATE TABLE DEPARTAMENTO (
"codigo" VARCHAR(5) NOT NULL ,
"nombre" VARCHAR(40) NOT NULL ,
PRIMARY KEY("codigo")
);
CREATE TABLE MUNICIPIO (
"codigo" VARCHAR(10) NOT NULL ,
"nombre" VARCHAR(40) NOT NULL ,
"departamento" VARCHAR(5) NOT NULL ,
PRIMARY KEY("codigo")
);

--GENERANDO RELACIONES
ALTER TABLE USUARIO ADD FOREIGN KEY ("id_persona") REFERENCES PERSONA
("identificacion");
ALTER TABLE PERSONA ADD FOREIGN KEY ("municipio") REFERENCES MUNICIPIO ("codigo");
ALTER TABLE PREFIERE ADD FOREIGN KEY ("preferencia_id_preferencia") REFERENCES
PREFERENCIA ("id_preferencia");
ALTER TABLE PREFIERE ADD FOREIGN KEY ("persona_identificacion") REFERENCES PERSONA
("identificacion");
ALTER TABLE COTIZACION ADD FOREIGN KEY ("persona_identificacion") REFERENCES
PERSONA ("identificacion");
ALTER TABLE PEDIDO ADD FOREIGN KEY ("persona_identificacion") REFERENCES PERSONA
("identificacion");
ALTER TABLE CONTIENEP ADD FOREIGN KEY ("producto_id_producto") REFERENCES PRODUCTO
("id_producto");
ALTER TABLE CONTIENEP ADD FOREIGN KEY ("pedida_id_pedido") REFERENCES PEDIDO
("id_pedido");
ALTER TABLE CONTIENEC ADD FOREIGN KEY ("cotizacion_id_cotizacion") REFERENCES
COTIZACION ("id_cotizacion");
ALTER TABLE CONTIENEC ADD FOREIGN KEY ("producto_id_producto") REFERENCES PRODUCTO
("id_producto");
ALTER TABLE FACTURA ADD FOREIGN KEY ("pedida_id_pedido") REFERENCES PEDIDO
("id_pedido");
ALTER TABLE PROVEEDOR ADD FOREIGN KEY ("id_persona") REFERENCES PERSONA
("identificacion");
ALTER TABLE PRODUCTO ADD FOREIGN KEY ("id_proveedor") REFERENCES PROVEEDOR
("id_persona");
ALTER TABLE MUNICIPIO ADD FOREIGN KEY ("departamento") REFERENCES DEPARTAMENTO
("codigo");

--INGRESO DE DATOS

-- PARA QUE FUNCIONE ESTA PARTE REEMPLAZAR POR LA RUTA EN LA QUE EST
dptos_munic.csv
-- ASEGURARSE QUE SEA UNA RUTA ACCESIBLE (PREFERIBLEMENTE NADA DE PROGRAM FILES Y
SI SE PUEDE, EVITAR EL DISCO C)

create temp table tmp (


"codigo_d" VARCHAR(5),
"nombre_d" VARCHAR(40),
"codigo_m" VARCHAR(10),
"nombre_m" VARCHAR(40)
);
copy tmp from 'D:\dptos_munic.csv' USING delimiters ';';

insert into departamento select distinct on (codigo_d) codigo_d, nombre_d from tmp;

insert into municipio select codigo_d||''||codigo_m, nombre_m, codigo_d from tmp;

INSERT into PERSONA values ('1122654214','cedula','Fran R','14/11/1997','M',(select


current_date),'CLL 37 # 45-67','calle
22','05001','asdasd@mail.com','6651111','3102220001',NULL,NULL);

INSERT into PERSONA values ('123123444','cedula','Juan Andres


Gamboa','16/1/2017','M',(select current_date),'Calle 26 #12','Calle 26
#12','05001','msw8338@gmail.com','6679999','3125555345',NULL,NULL);

INSERT into PERSONA values ('1121444333','cedula','Felipe


Martinez','15/1/1994','M',(select current_date),'Calle 12 #12','Calle 14
#12','05001','felipe@gmail.com','6651010','3125544050',NULL,NULL);

INSERT into PERSONA values ('1234555111','cedula','Rosa Diaz','15/6/1997','F',


(select current_date),'Calle 41 #13','Calle 41
#13','05001','juliet@gmail.com','6651010','3125544050',NULL,NULL);

INSERT INTO PROVEEDOR values (1121444333, 'MateriaPrima');


INSERT INTO PROVEEDOR values (1234555111, 'Satelite');

INSERT into USUARIO values ('franroca97', 'prueba1', '1122654214', 'admin');


INSERT into USUARIO values ('juan17', 'prueba2', '123123444', 'cliente');

S-ar putea să vă placă și