Solo para saber su opinion sobre que es mejor para la BD en cuanto a optimización:
Modo 1
• Tener varias tablas, una por cada elemento
Modo 2
• Tener una tabla para todos los elementos
Les dejo un ejemplo de consulta para entenderme mejor.
Consulta con el modo 1:
Código:
Consulta con el modo 2:SELECT v.id, v.fecha, v.comentarios t.nombre AS tienda, a.nombre AS almacen, c.nombre AS cajero FROM ventas v LEFT JOIN tiendas t ON t.id = v.id_tienda LEFT JOIN almacenes a ON a.id = v.id_almacen LEFT JOIN cajeros c ON c.id = v.id_cajero WHERE c.id IN(2, 5)
Código:
Bueno pues eso, cual seria la mejor manera de hacerlo?SELECT v.id, v.fecha, v.comentarios t.nombre AS tienda, a.nombre AS almacen, c.nombre AS cajero FROM ventas v LEFT JOIN elems t ON t.tipo = 'tienda' AND t.id = v.id_tienda LEFT JOIN elems a ON a.tipo = 'almacen' AND a.id = v.id_almacen LEFT JOIN elems c ON c.tipo = 'cajero' AND c.id = v.id_cajero WHERE c.id IN(2, 5)
P.D.: Una cosa que no mencione, esta tabla "todo en una" es solo para elementos fijos, es decir, no es para elementos de incremento continuo como ventas, compras, comentarios, etc. sol para elementos que aparecerian en selectores del formulario.