Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/04/2012, 07:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Meter muchas variables en un solo campo

Cita:
Lo llevo haciendo mucho tiempo, y ahora me ha entrado la duda de si es una burrada.
En realidad, lamento decirtelo, es una burrada.
Pero no eres el único en preguntar sobre este asunto, ni tampoco en hacer de entrada semejante tontería. Tal vez eres el primero en preguntar si es correcto, antes de seguir adelante.

Mira, el tema es simple: Lo que estás haciendo es lo que se denomina "campo multivaluado" y están totalmente prohibidos en las bases de datos relacionales.
Usar ese tipo de campos implica que la persona no conoce los fundamentos del modelo entidad-relación, lo que en este campo (Bases de Datos), es una falencia extremadamente problemática.
Lo lamento, pero es así.
No quier explayarme demasiado, porque para explicar las razones de por qué no se admiten, requieriría hacerte una explicación muy larga para fundamentarla. Por ello te remito a que leas los fundamentos del modelo Entidad-Relación y Bases de Datos Relacionales en algún tutorial, o directamente en Wikipedia.

En lo esencial, la presencia de un campo que puede contener múltiples valores implica que tienes una relación de cardinalidad 1:N o N:N entre dos relaciones (tablas).
Si la relación es 1:N, entonces la segunda tabla debe contener como parte de su PK, la misma PK de la tabla origen.
Si la relación es N:N, entonces debe haber una tercera tabla que vincule cada registro de la primera tabla, con cada uno de los que está relacionado de la segunda tabla. Esta tercera tabla se suele mencionar como "tabla relacional", y su PK está formada por las PK de cada una de las tablas. Ese es el modo correcto de hacerlo, porque es el único admitido (los fundamentos aprenden al cursar la materia BB.DD.) por el paradigma relacional.

Si insistes en usar tu "solución" con un campo multivaluado, te advierto que tendrás enormes problemas de consistencia de datos, integridad referencial, sin contar con la optimización de consultas (en las que no te resultará útil usar LIKE por una serie de condiciones que son largas de ejemplificar), etc.
Como "solución", es habitual en los que se inician en esto, pero como te digo, lo único que te traerá serán dolores de cabeza.

Empieza por tratar de entender cómo se diseña una base. Luego veremos cómo se implementa lo que debes ingresar, dentro de un modelado correcto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)