Estoy diseñando mi primera base de datos para MySQL y la idea aquí es que tenemos órdenes que pueden contener múltiples elementos diferentes. Así que decidí guardar el pedido con toda la información relevante en una tabla, los artículos en otra y luego crear una tercera tabla donde se almacena cada artículo ordenado. Por supuesto, cada vez que necesite enumerar un pedido, primero tendré que encontrar todos los ID de OrderedItems para los que OrderID es el mismo que el OrderID que necesito y que coincida con los ítems.¿Qué hay de malo en este esquema de SQL?
Ahora, dado que este es mi primer diseño de base de datos, no soy tan arrogante como para pensar que es una buena solución, entonces me preguntaba si alguien sabe una buena solución para este tipo de problema. Gracias imagen
está en http://img211.imageshack.us/img211/5575/stackoverflowq.png
Eso se ve bien, buen trabajo para un primer esfuerzo :) – rjohnston
bueno! Bien hecho en el atributo 'PriceAtPurchase'; Sospecho que muchos principiantes cometerían el error de suponer que 'Price' no debería duplicarse en' Items'; sin embargo, como has notado correctamente, ¡esto no es una duplicación! Y; como señala Russ, se puede considerar un similar para posibles atributos tanto en 'Pedidos' como 'OrderedItems'. Lo único que tengo que añadir es que el uso de una nueva clave artificial en 'OrderedItems' te deja con un atributo que tiene ** NO ** que significa, ** ** NUNCA ** referenciado, y puede llevar a anomalías de actualización. Es un tema polémico, pero creo que ves dónde estoy parado. ^^ –