From: | Mario <gonzalemario(at)gmail(dot)com> |
---|---|
To: | "David Primero Segundo" <aberracion2001(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Modelo entidad relacion |
Date: | 2007-02-23 12:04:04 |
Message-ID: | 2065a6cf0702230404x262cb9d3x4f4ed4827869715@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 23/02/07, David Primero Segundo <aberracion2001(at)hotmail(dot)com> wrote:
> entre historial y pacientes el E/R es 1:1 y entre historial y programas es
> 1:n . El problema es que no sé de qué me vale este modelo para sacarle más
> provecho a la base de datos, es decir, para mi personalmente sí me vale
> porque así conozco como tienen que relacionarse las tablas, pero postgresql
> es inconsciente a este conocimiento no? o hay alguan forma de decirle a
> postgresql este conocimiento para que el mismo se ocupe de que la relacion
> sea correcta?
Si esperas algo a alto nivel como se puede hacer en un framework
entonces estas perdido ;-) Sabes, muchas veces en vez de precuparte si
una relacion es 1-N, N-N, 1-1 o cualquier otra cosa quiza sea mejor
preocuparte por lo que realmente necesitas. Otra cosa que he aprendido
en la Universidad de la vida: que hay aberraciones en Ingenieria de
Software que en la practica resultan muy utiles. Por ejemplo, cuando
tienes muchas tablas relacionadas y tu MER te dice que al final vas a
tener una tabla con clave primaria compuesta de mas de 5 o +6 tablas,
lo cual muchas veces se puede solucionar con algo mas rapido como un
identificador numerico e indexarlo para busquedas.
Sin embargo si te preguntas como relacionar una tabla? Entonces la
respuesta es con FOREIGN KEYS:
test=> CREATE TABLE a(pkey serial primary key);
test=> CREATE TABLE b(relacion_con_a integer references a);
test=> \d a
Tabla «public.a»
Columna | Tipo | Modificadores
---------+---------+--------------------------------------------------
pkey | integer | not null default nextval('a_pkey_seq'::regclass)
Índices:
«a_pkey» PRIMARY KEY, btree (pkey)
test=> \d b
Tabla «public.b»
Columna | Tipo | Modificadores
----------------+---------+---------------
relacion_con_a | integer |
Restricciones de llave foránea:
«b_relacion_con_a_fkey» FOREIGN KEY (relacion_con_a) REFERENCES a(pkey)
Pasa por aqui para mas informacion
http://www.postgresql.org/docs/8.2/interactive/tutorial-fk.html
>
From | Date | Subject | |
---|---|---|---|
Next Message | Leonel Nunez | 2007-02-23 12:33:13 | Re: Modelo entidad relacion |
Previous Message | vhr | 2007-02-23 11:55:03 | RE: Comparativo de TeraManager y Postgresql |