Buen dia.
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:
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)
Consulta con el modo 2:
Código:
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)
Bueno pues eso, cual seria la mejor manera de hacerlo?
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.