Estoy en el proceso de diseño de una base de datos y tengo dudas sobre mis decisiones de diseño iniciales ...
Los tipos de productos son los siguientes ... Modelos, piezas, kits de piezas de repuesto y opciones.
Opción A (primer diseño): planeaba tener tablas separadas para los tipos de productos anteriores. Yo diría que aproximadamente el 75% de los campos serían los mismos en cada tabla.
Creé cada tipo de producto como tablas separadas debido a las asociaciones que necesito crear entre ellos. Por ejemplo, un modelo puede tener muchas opciones y una opción puede tener muchos modelos. Una opción también puede tener muchas partes y una parte puede tener muchas opciones ... y así sucesivamente ...
Opción B: en lugar de tener tablas separadas, podría crear una tabla llamada Producto que abarque modelos, piezas, kits de piezas de repuesto y opciones. Podría tener un campo llamado tipo para diferenciar entre modelo, opciones, etc. Supongo que una desventaja es que varios campos nunca se usarían (dejarían nulo) para ciertos tipos de productos. Supongo que aquí es donde entrarían en juego "no las mejores prácticas".
La opción B reduciría en gran medida la complejidad del diseño db. Tampoco tendría que preocuparme por hacer referencia a un montón de tablas al extraer datos para consultas ...