At 16:10 09/05/2011, [email protected] wrote:
Hola a todos,
estoy haciendo algo parecido a lo que serÃa una red social de contactos.
Es decir, Juan conoce a Pepe, Pepe conoce a
Pedro, Andrés conoce a Pedro, etc..
etc.. Creo que serÃa una especie de relación muchos-a-muchos...
En lo que estoy un poco perdido es en como
representar esta relación en tablas de base de
datos y su consistencia. PostgreSQL en este
caso (aunque podrÃa ser cualquier otra).
Se admiten ideas teórico-prácticas de todo tipo.
Usa una matriz, no una tabla. Usa tu
implementacion, es sencilla no un motor de bd
relacional. Basicamente a lo que me refiero es a
una matriz similar a los partidos de futbol o a
las distancias entre ciudades. Pones en
horizontal y vertical todos los usuarios y en
cada posicion de la matriz el valor que los une
(tipo de relacion, visibilidad, pk a tablas en
bd, etc...). Puedes simplificar el tamaño por 2
si la matriz es triangular, como en las
distancias entre ciudades que es la misma en un
sentido que en otro,en vez de matriz completa
como en los partidos de futbol, donde el
resultado del partido de ida no es el mismo que
el de vuelta. Para una implementacion eficiente
mira matrices dispersas y similares o
directamente hash tables, ya que cada par
usuario1-usuario2 le corresponde un valor descriptivo de la relacion.
Si vas a usar hash tables, mi consejo es que
huyas de las bd hechas en Java y hagas tu una
implementacion simple (kiss). No se como va la
implementacion de hash tables de Postgres ni su
rendimiento, pero lo puedes usar.
Bueno, de momento está todo muy verde y
todavÃa tengo que mirar esto a fondo, pero si
alguien ha hecho cosas parecidas.... Cualquier idea es buena.
Saludos y gracias.
Suerte.
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda