Recientemente he dividido una tabla de base de datos muy grande en tablas más pequeñas y manejables y, en general, estoy satisfecho con mi trabajo y creo que los datos están normalizados correctamente.Normalización de base de datos
Pero hay una excepción a esto. Las tablas en cuestión provienen de una base de datos de productos que almacena información sobre (lo adivinó) productos que vende la empresa. He separado gran parte de la información en dos tablas: ProductBase
y ProductBasePackaging
.
Estas tablas contienen el paraguas de la información que es relevante para un número de pieza base en lugar de un producto individual (hay múltiples productos para cada número base).
ProductBase
contiene más información general, como MarketingCopy
, Keywords
etc. y también información sobre el material de construcción es decir, componentes etc.
Y ProductBasePackaging
por supuesto mantiene datos sobre el envase.
Ahora que estoy escribiendo la aplicación para la manipulación de datos, estoy comenzando a adivinarme a mí mismo. Parece que me he vuelto más difícil ahora que tengo que hacer un seguimiento de varias tablas que usan la misma clave (el número de parte de la base). ¿O tengo razón en haberlos separado como tal y quizás haber dado un paso más y haber separado la construcción en su propia mesa también?
Soy bastante versado en el uso de sql, pero esta es la primera vez que alguna vez he tenido que diseñar una estructura de base de datos, y mucho menos reestructurar una gran base de datos existente. Entonces, básicamente, lo que estoy preguntando es si debería tener varias tablas con la misma clave separadas por tipo de datos o mantener las cosas juntas en la única tabla donde puedo hacer referencia a todo lo que necesito de una tabla con la misma clave.
Lo siento, sé que era mucho para leer, espero que tenga sentido, ¡y gracias a todos los que lo lograron!
+1 Acepto acerca de ** visitas **. OP también debe tener en cuenta que consultar tablas 'JOIN'ed puede ser mucho más rápido que una tabla plana si se ha duplicado efectivamente. – Matthew
+1. Parece que O.P. lo tiene bien. Los productos son widgets individuales, ¿verdad? Pero se incluyen en diferentes SKU para la venta. Paquetes de 2,4,8, etc. Tal vez empaques especiales para la casa de Walmart, etc. Usted tiene (al menos) dos entidades separadas aquí. –
@Nicholas, sí, lo tienes bien. ¿Pero podrías elaborar las entidades separadas en tu ejemplo? – Nick