Bases de Datos - Modificar tabla sin perder datos de otra tabla relacionada

 
Vista:

Modificar tabla sin perder datos de otra tabla relacionada

Publicado por Lucia (3 intervenciones) el 29/07/2011 10:40:11
Buenos días, estoy realizando una base de datos para la gestion de la taquilla de un cine. Tengo una relacion n-m entre PRECIOS y FORMATOPELICULA, es decir, dependiendo del formato que tenga la pelicula (2d, 3d...) el precio será uno u otro, los tipos de precio serían "normal", "3d", "carnet joven", "dia-espectador". Despues el precio está relacionado con otra entidad que es ENTRADA que recoge entre otros datos el precio que tendrá la entrada con una foreign key de idPrecio.
Mi problema surge cuando quiero borrar o modificar un precio, que no puedo al estar como clave ajena en entrada, lo que quiero es poder borrar o modificar un precio pero que las entradas que hubiera vendido a ese precio se mantengan con ese precio y no cambien al nuevo precio o tener que borrar la entrada con un determinado precio para poder borrar ese precio. ¿Cómo podria hacerlo?
No sé si me explicado bien o necesitan mas datos, de todos modos les agradezco cualquier aportación, que tengo un poco olvidado esto del diseño de BD. Muchas gracias. un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de charles

Modificar tabla sin perder datos de otra tabla relacionada

Publicado por charles (1 intervención) el 29/07/2011 11:39:05
Hi Lucia.

Para hacer relaciones entre tablas, siempre hay que tener en cuenta que vamos a relacionar en si. Ya que se debe saber que las relaciones siempre pueden depender una de otra.

En tu caso, puede agregar a la tabla ENTRADA un campo PRECIO y en tu procedimiento de grabar el PRECIO lo graba en la tabla ENTRADA, y solo usa el PRECIO de la relación como información que sera obtenida por el tipo de formato ("normal", "3d") que tenga. asi cuando modifique el precio, las demas ENTRADA tendran su precio original.

Espero que te ayude.

Charles
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Modificar tabla sin perder datos de otra tabla relacionada

Publicado por Lucia (3 intervenciones) el 03/08/2011 13:31:31
Hola Charles¡¡ creo que me lié un poquito, también porque mi forma de expresar estoy viendo que no fue demasiado buena jaja te voy a poner otra duda similar a ver si me termino de aclarar. Si tengo dos tablas:
USUARIOS:
-IdUsuario (PK)

COMPRAS
-IdCompra (PK)
-IdUsuario (FK)

Cuando la tabla compras esta rellena por ejemplo con
COMPRAS
1 Juan
2 Pepe
3 Juan

si quiero eliminar al usuario Juan, no podria eliminarlo de la BD al estar siendo usado en la tabla compras, o como haria para poder eliminarlo??

Siento ser un poco pesada... y muchas gracias de nuevo.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Modificar tabla sin perder datos de otra tabla relacionada

Publicado por juan (11 intervenciones) el 12/08/2011 21:34:52
hay dos opciones. La primera es en la tabla de usuarios, agregarle una columna "Deleted" bit default 0. cuando se borra un usuario solamente se actualize la columna deleted a true y en los views y querys agregarle "where deleted = 0".
La segunda es modficar la relacion para que solo actualize y no borre en las tablas relacionadas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Modificar tabla sin perder datos de otra tabla relacionada

Publicado por Lucia (3 intervenciones) el 12/08/2011 22:16:16
Muchas gracias Juan por la respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Modificar tabla sin perder datos de otra tabla relacionada

Publicado por juan (11 intervenciones) el 16/08/2011 02:41:18
muy a la orden.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar