Ver Mensaje Individual
  #4  
Antiguo 12-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por kornamenta Ver Mensaje
Hola quería saber si es posible crear una tabla la cual contenga un campo que pueda almacenar una lista de datos. Esto es para un programa que debo hacer en el cual se tengan los datos de un automotor: Nº de patente, Marca, Modelo y Modificaciones. Precisamente necesito que para este último campo Modificaciones se pueda ir editando a medida que se le realiza actualizaciones. Ejemplo:

QWE-123 - Fiat - 600 - Cambio de neumáticos
Chapa y pintura
Cambio de amortigüadores

Espero que se entienda lo que necesito. Que por ejemplo al ingresar el Nº de patente salgan los datos de la tabla y de alguna forma la lista de modificaciones. Espero que alguien sepa como hacerlo muchas gracias
Tener un campo que almacene una lista de valores es un mal diseño en una base de datos. Lo que debes hacer es introducir una segunda tabla que almacene los cambios con una llave foránea que punte la primera tabla.

Por ejemplo, tu primera tabla podría tener estos campos:

automotor = (id, noPatente, marca, modelo) # id sería la llave primaria, un valor numérico autoincremental

y la segunda quedaría así:

cambios = (id, automotorId, cambio) # id llave primaria, automotorId llave foránea

Entonces, para el ejemplo que pones, tendrías un registro en la tabla automotor:

(354, "QWE-123", "Fiat", "600")

y tres registros en la tabla cambios (uno por cada cambio en el automotor correspondiente):

(574, 354, "Cambio de neumáticos")
(575, 354, "Chapa y pintura")
(576, 354, "Cambio de amortiguadores")

Los números de los IDs son inventados, pero lo importante es que el segundo campo de cambios (354 en el ejemplo) hace referencia a la llave primaria en automotor.

Cuando quieras recuperar la información simplemente haces una consulta SQL especificando el ID del automotor:

Código SQL [-]
select * from cambios
where automotorId = 354

// Saludos
Responder Con Cita