¿Es recomendable tener una tabla para almacenar valores relacionadas a otras tablas?
¿Cómo están miembros del foro? Espero que bien.
Les comento que este es mi primer post aquí; de hecho, estoy apenas entrando en el mundo de MySQL. Lo cierto es que quiero empezar con buen pie, y tengo algunas dudas, por lo cual quiero pedir ayuda a quienes tienen más experiencia.
Inicialmente, les comento que quiero evitar hacer tablas redundantes. Les explico con algo más específico: voy a almacenar clientes y empresas; ambas pueden tener múltiples direcciones y números de teléfono, por lo cual almacenaré esos datos en otras tablas. El asunto es que no quiero crear cuatro tablas (clientes_direcciones, clientes_telefonos, empresas_direcciones, empresas_telefonos) sino dos: direcciones y telefonos, y guardar los datos de clientes y empresas en esas mismas tablas.
¿Cuál es el problema? Por un lado, los Foreing Keys (FK). Por ejemplo, en la tabla telefonos tendré los campos id_ref (FK), tabla, tipo, telefono. Pero ¿cómo hago un FK que apunte a dos tablas distintas?
Por otro lado, el campo "tabla" es para guardar el nombre de la tabla a la que pertenece este valor, porque creo que debo poder clasificar los registros de empresas y clientes. Además, algunos valores de "id_ref" pueden repetirse en ambas tablas, por lo cual necesito el campo "tabla" para identificar el registro con precisión.
¿Qué opinan de todo esto? ¿Está mal ese concepto?