Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/04/2008, 09:01
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: query para insertar en un campo set

Para lo que quieres hacer, es mejor una tercera tabla, una tabla intermedia, a la que podrás llamar organizacionesusuario, donde junto al id propio de esa tabla, tendrás dos Foreign Key, uno que será el correspondiente al USUARIO_ID de la tabla USUARIO, y otro al ID de la tabla ORGANIZACIONES.
El modo en que se guardarán los datos es el siguiente:
Si Juan Pérez, con USUARIO_ID Nº 5 en la tabla USUARIO pertenece a 3 asociaciones de las recogidas en la tabla ORGANIZACIONES: la ASOCIACIÓN A con ID 4, la ASOCIACIÓN B con id 33, y la ASOCIACIÓN C, con ID 15, en esa tabla intermedia que he llamado ORGANIZACIONESUSUARIO los datos aparecerían guardados así:
idorgusu refusuid refasocid
1 5 4
2 5 33
3 5 15

Luego mediante los joins presentarías todos los datos.
Es cierto que SET te permite guardar para ese usuario los datos del siguiente modo en el campo '4, 33, 15'
pero eso no es lo adecuado para la estructura de la base que quieres, en que la relación principal se produce entre usuario y organización. Si tienes que hacer estadísticas o simplemente sacar la lista de organizaciones de un usuario, ya tendrás bastantes problemas.
Además, se trata de una cadena de texto (con la desventaja que eso supone sobre los datos numéricos de campos relacionados), y tampoco te permite almacenar más de 64 tipos distintos, es decir, si hay más de 64 organizaciones ya no podrás ponerlas todas.
Yo te recomendaría esa tercera tabla.
Esa es mi opinión.