Comunidad de diseño web y desarrollo en internet online

Valores separados por comas en mysql? (modelo E-R)

Citar            
MensajeEscrito el 08 Sep 2010 09:44 pm
Tengo un problema básico en el modelo E-R. Si a cada persona le corresponden varias actividades, pero no esta en claro cuál es el número de esas actividades (checkboxes), cómo puede establecerse una relación?

Es decir, teniendo estas tablas:

persona
id
nombre
actividades

actividad
ciencia
educación
desarrollo
artes
etc

Cómo puede hacer para relacionarlas? Entiendo que guardar valores separados por comas no es buena idea.

Por mayid

17 de clabLevel



 

opera
Citar            
MensajeEscrito el 08 Sep 2010 09:54 pm
persona
- id_persona
- nombre
- otros campos....

actividad
- id_actividad
- nombre
- otros campos....

persona_actividad
- id_persona
- id_actividad
- esto genera campo adicionales¿?


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 08 Sep 2010 09:59 pm
Entiendo lo de hacer una tabla que relacione otras dos tablas. Pero ese ejemplo hace una relación entre dos id. No soporta múltiples valores. Es decir, cada persona puede hacer muchas cosas y no una sola (mi ejemplo es abstracto, pero da la idea).

No quiero caer en esto de separar por comas:

persona_actividad
- 9
- 15, 17, 3, 5

Por mayid

17 de clabLevel



 

opera
Citar            
MensajeEscrito el 08 Sep 2010 10:08 pm
Eso que está alli resuelve tu problema creeme

Hagamos unos datos de ejemplos

Persona
id_persona, nombre
1, mayid
2, Maikel

Actividad
id_actividad, nombre
- 1, Programar FW
- 2, Visitar Cristalab
- 3, Mantener Cristalab

persona_actividad
id_persona, id_actividad
- 1, 1
- 1, 2
- 2, 1
- 2, 2
- 2, 3


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 08 Sep 2010 10:14 pm
Ah! Ahora entiendo perfectamente bien. Mil gracias Maikel!

Por mayid

17 de clabLevel



 

opera
Citar            
MensajeEscrito el 08 Sep 2010 10:45 pm
la verdad ese diseño de DB va a complicar mucho el sistema, mejor crea una tabla relacional

persona

  • id
  • nombre


actividad

  • id
  • nombre_actividad /*ciencia, deporte, etc... */


ahora la tabla relacional:
persona2actividad

  • id_p2a
  • id_persona
  • id_actividad



luego solo los relacionas, si no sabes como hacerlo hice un tutorial sobre
consultas cruzadas

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 09 Sep 2010 02:58 am
No inyaka, en este caso tu opción comprometería la bd y por ende el sistema. Esa opción se usa en casos especiales, no por arbitrariedad.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.