Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: motostion en 11 de Septiembre 2016, 23:53

Título: Funcionamiento estricto de claves externas en base de datos? Restricciones
Publicado por: motostion en 11 de Septiembre 2016, 23:53
Se me plantea una duda...

Me dicen que existe un artículo en un almacén de burgos con codigo 001 y nombre Nestle.

Ese artículo,existe en la bbdd perfectamente confeccionada,en la entidad artículo y con su atributo 001 igual que el anterior,nombre Nestle como el anterior.

En un momento dado, ese artículo se prohíbe distribuir.Se me plantean dos opciones a tomar en cuanto a la base de datos.

a)Eliminarlo de la lista de distribución.
b)Ponerle cantidad 0.

Ahora, me dicen lo siguiente...

Me dicen que en una operacion relaciónal que  si el codigo de articulo= código de distribución   y además el nombre del articulo= nombre de distribución, DARA LUGAR a una tabla con codigo y cantidad. Siempre se cumplirá que  si en el almacen de burgos si existe un articulo con nombre Nestle, la relación siempre se cumple... y nunca sería una tabla vacia.

Sería cierto?

El articulo está en una tienda de burgos,pero no se puede distribuir,recordar eso ;)

Espero no haber liado mucho la madeja...
Título: Re:Funcionamiento estricto de claves externas en base de datos? Restricciones
Publicado por: Ogramar en 15 de Septiembre 2016, 09:40
Buenas la redacción parece un poco confusa. Si el artículo existe aunque esté prohibida su distribución, lo lógico es que aparezca en las relaciones. También parecería lógico que existiera una columna que indique si el artículo está permitido distribuirlo o no. Si la prohibición de distribución afecta al producto (todos los almacenes) esa columna debería estar en la tabla de artículos. Si la prohibición de distribución afecta a cada almacén en particular, la restricción tendría que estar en la tabla donde se relacionan los productos con los almacenes, así es como lo veo yo.

Salu2