Cita:
Empezado por kornamenta
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