Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/01/2013, 14:33
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: Relación Tablas

Una relación de parentescos basada en una sola tabla donde se registren las personas, es en realidad, para ser eficiente, un esquema a tres tablas: Persona, Pariente_De y Categoria_Pariente.
En ese esquema la tabla Pariente_De sólo contiene tres campos mandatorios: persona_id, Pariente_id y Pariente_categoría_id.
La idea es que cada persona es pariente de N personas, y que cada uno de esos parientes lo puede ser de N personas, por lo cual al ser una relación N:N, requiere una tabla para admiistrar el vinculo.
La tabla Categoría_Pariente es una tabla necesaria por normalización, y sirve para determinar qué parentesco está definido en esa relación (padre, hija, tío, abuelo, prima, etc.).

Finalmente, el tema del ID, por modelo E-R una PK no debe ser necesariamente un campo numérico y autoincremental, eso es un hábito de programadores, pero no es un requisito del modelo (este tema lo hemos tratado innumerables veces).
Una PK es un campo o conjunto de campos que identifica univocamente un registro en una tabla (o una tupla en una relación del modelo lógico).
En ese contexto, la PK será aquel atributo de la entidad representada en la tabla que mejor se ajuste a las necesidades del sistema, y sólo se requiere de campos numéricos si no hay atributos que puedan cubrir los requisitos de PK: Único, irrepetible y no nulo.
Sería buena idea que antes de avanzar le dieses una leída al tema de Modelo Entidad-Relación, donde se fundamentan las bases de datos relacionales, como MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)