Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/03/2009, 06:46
seyko
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: Consulta para contar cuantas familias hay en la bd

En lugar de incrementar el id con una select, puedes utilizar el pseudotipo serial, que te hace eso automaticamente a nivel de base de datos, evitando tener que hacer una query cada vez que se inserta un registro y te evita posibles problemas de concurrencia.

Yo diseñaria las tablas de la siguiente forma:

create table familia (id serial primary key, id_madre integer references tabla_madre(id), id_padre references tabla_padre(id));

create table familia_x_hijos (id_familia integer reference familia(id), id_hijo varchar(4) reference tabla_hijo(id), primary key (id_familia, id_hijo));

Ahora independientemente del numero de hijos que tenga la familia solo se inserta en familia 1 vez.
Para contar el numero de familias solo tienes que contar el numero de registros de la tabla familia.
Para saber los apellidos del padre o de la madre, haces join de familia con padre o madre y seleccionas sus apellidos.
Para comprobar si dos niños son hermanos te basta con comprobar si id_familia coincide en familia_x_hijos, evitando posibles coincidencias de apellidos.

mmmm creo que eso es todo...

Salu2