[OT] Relaciones base de datos

From: el-PRiNCiPiTo <el-PRiNCiPiTo(at)terra(dot)es>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: [OT] Relaciones base de datos
Date: 2007-12-17 16:13:33
Message-ID: 4766A02D.9050600@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, he tratado de terminar mi base de datos con las indicaciones
que me dieron en la lista sobre los tipo de relaciones, yo creo que está
bien porque la verdad es que me lo explicaron muy claro y con las
indicaciones que me dieron logré encontrar aun más información en el
histórico.
El caso es que esto no funciona como yo creía que iba a hacer, no se
si es un fallo en el diseño o que no comprendo como funcionan estas cosas.

Tengo una tabla con los pedidos relacionada con otra,
detallepedidos, que a su vez está relacionada con la tabla productos
(tienen más relaciones pero con arreglar esto lo demás será muy similar
así que no las detallo). Entonces yo pensaba que con las relaciones que
les he puesto podría al generar un pedido que a este se le asignara un
idPedido, un idDetalle, y en la tabla detalles poder asignar varios
productos pero solo soy capaz de poner uno por detallepedido y por lo
tanto uno por pedido.
Paso a relatar las relaciones y las tablas para ver si alguien me
puede ayudar.

CREATE TABLE "Pedido"
(
"IdPedido" integer NOT NULL DEFAULT
nextval('"Pedido_IdPedido_seq"'::regclass),
"IdCliente" integer,
"IdDetalle" integer,
"NumPedido" integer,
"FechaPedido" date,
CONSTRAINT "IdPedido" PRIMARY KEY ("IdPedido"),
CONSTRAINT "IdCliente" FOREIGN KEY ("IdCliente")
REFERENCES "Cliente" ("IdCliente") MATCH FULL
ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT "IdDetallePedido" FOREIGN KEY ("IdDetalle")
REFERENCES "DetallePedido" ("IdDetallePedido") MATCH FULL
ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
ALTER TABLE "Pedido" OWNER TO postgres;

CREATE TABLE "DetallePedido"
(
"IdDetallePedido" integer NOT NULL DEFAULT
nextval('"DetallePedido_IdDetallePedido_seq"'::regclass),
"IdProducto" integer,
"Descuento" integer DEFAULT 0,
CONSTRAINT "IdDetallePedido" PRIMARY KEY ("IdDetallePedido"),
CONSTRAINT "IdProducto" FOREIGN KEY ("IdProducto")
REFERENCES "Producto" ("IdProductos") MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE "DetallePedido" OWNER TO postgres;

CREATE TABLE "Producto"
(
"IdProductos" integer NOT NULL DEFAULT
nextval('"Prodcto_IdProductos_seq"'::regclass),
"IdTipoProducto" integer,
"IdEmbaladora" integer,
"Peso" integer,
"IdOrigen" integer,
"FechaProduccion" date,
CONSTRAINT "IdProducto" PRIMARY KEY ("IdProductos"),
CONSTRAINT "IdEmbaladora" FOREIGN KEY ("IdEmbaladora")
REFERENCES "Embaladoras" ("IdEmbaladora") MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "IdOrigen" FOREIGN KEY ("IdOrigen")
REFERENCES "Origen" ("IdOrigen") MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "IdTipoProducto" FOREIGN KEY ("IdTipoProducto")
REFERENCES "TipoProducto" ("IdTipoProducto") MATCH FULL
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE "Producto" OWNER TO postgres;

He decidido poner Of Topic porque no se si esto tiene que ver con el
pgsql o mas bien con diseño de bases de datos en general. Espero que no
sea una consulta inapropiada para la lista.

Muchas gracias.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message James Alonso Barrientos Santos 2007-12-17 16:30:30 RE: Postgre y MapInfo ALguien sabe de algo?
Previous Message Fevis Koste 2007-12-17 15:20:45 Re: Enmascarar datos resultante de un SELECT en una tabla