representar relación entre tablas SQL sin duplicar datos

Algoritmos, estructuras de datos, estrategias o patterns. Lenguaje' de programasión, vieja! Ce, loco, Ce! Páison, y todo eso.

representar relación entre tablas SQL sin duplicar datos

Notapor Adriano el Mar May 06, 2008 12:19 pm

- Tengo (entre otras) tres tablas: obras, artistas y contactos.
- hay una relación muchos-muchos entre obras y contactos (un contacto puede estar relacionado con más obras, y una obra con más de un contacto)
- y otra muchos-muchos entre artistas y contactos.
- la relación obras-artistas es muchas obras - un artista (n-1). Obras creadas por más de un artista van como "creadas por un colectivo de artistas" con lo cual el problema se resuelve.
- la relación entre artistas o colectivos y contactos es muchos-muchos (1 artista - muchos contactos, 1 contacto - muchos artistas)
- un artista es contacto para sus obras (y esto no es problema, agrego lógica en php que agregue entre los contactos de una obra al artista con una query "select artista de la obra").
- un artista puede ser contacto para obras de otros. Este es el problema: ¿cómo se puede, sin duplicar (demasiados) datos, representar esto? La solución obvia (and wrong?) es simplemente agregar al artista a la tabla de contactos, pero duplico datos, pierdo normalización, etc.

Todavía estoy escribiendo el esquema, así que no tengo una versión de MySQL elegida, pero sí va a ser esta la DB, a menos que las razones que presenten para usar otra sean demasiado buenas.
Saludos
Adriano
Avatarde Usuario
Adriano
Administrador
 
Posts: 392
Registrado: Sab Dic 09, 2006 12:50 pm
Ubicación: Argentina

representar relación entre tablas SQL sin duplicar datos

Sponsor

Sponsor
 

Re: representar relación entre tablas SQL sin duplicar datos

Notapor buanzo el Mie May 07, 2008 7:15 am

Y si contactos y artistas fueran la misma tabla (seres vivientes?) y los identificas de otra manera?

Ojo que de rdbms se optimizar, pero en disenio voy para atras :P
Avatarde Usuario
buanzo
Administrador
 
Posts: 673
Registrado: Sab Dic 09, 2006 11:17 am
Ubicación: Buanzonia (ok, Florida, Buenos Aires)

Re: representar relación entre tablas SQL sin duplicar datos

Notapor Adriano el Mie May 07, 2008 8:53 am

Una tabla "personas" es justamente la respuesta que se me ocurrió, pero tenemos que probar con datos a ver cómo salen las queries.
Saludos
Adriano
Avatarde Usuario
Adriano
Administrador
 
Posts: 392
Registrado: Sab Dic 09, 2006 12:50 pm
Ubicación: Argentina


Volver a Programación y Diseño de Sófwer.

¿Quién está conectado...?

Usuarios navegando este Foro: Google [Bot] y 1 invitado

cron