Hola amigos,
Desde hace tiempo hay un diseño de base de datos que me tiene sumamente inquieto. Imaginemos que un almacen nos solicita crearle un sistema de inventarios y ventas. El almacen vende lo siguiente:
Vehículos Abarrotes Mascotas Ropa Línea Blanca
De ahí deduzco que puede crearse una tabla de categorías. Luego entonces cada categoría tiene productos con los siguientes atributos:
Autos Abarrotes Mascotas Ropa Línea Blanca
Marca Marca Raza Marca Marca
Modelo Empaque Edad Modelo
Año Peso Color Talla Piezas
Color
En este punto se me hace coherente crear una tabla donde cada entidad almacene su información y de esa manera evitar nulos.
Luego viene la tabla que va a registrar las ventas, y allí me asalta la duda. ¿Es correcto que una sola tabla tenga los campos de todas las entidades que se venden? ¿o que se genere un maestro con la información base de la venta y un detalle de venta por cada entidad y con sus propios atributos?
En el primer caso, al crear una única tabla se dará pie a la existencia de muchos campos nulos aunque los tiempos de búsqueda se reduce.
En el segundo caso, se asegura que no exitan campos nulos al vaciar los atributos de cada entidad vendida en sus respectivas tablas detalle pero eso incrementa los tiempos de búsqueda y la complejidad de la consulta para obtenerlos.
¿Qué opinan compañeros?
¿Cómo lo solucionarían ustedes?