Actualmente estoy en el proceso de buscar una reestructuración de nuestra base de datos de gestión de contactos y quería escuchar las opiniones de las personas para resolver el problema de una cantidad de tipos de contactos que tienen atributos compartidos.Tabla "Herencia" en SQL Server
Básicamente tenemos 6 tipos de contacto que incluyen Person, Company y Position @ Company.
En la estructura actual, todos estos tienen una dirección; sin embargo, en la tabla de direcciones debe almacenar su tipo para unirse al contacto.
Este requisito constante para unirse al tipo de contacto se vuelve frustrante después de un tiempo.
Hoy me encontré con una publicación que habla de "Tabla de herencia" (http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server).
Básicamente tiene una tabla primaria y varias tablas secundarias (en este caso, cada tipo de contacto). A partir de ahí, aplica la integridad para que una subtabla tenga un equivalente maestro donde esté definido su tipo.
De la manera en que lo veo, con este método ya no necesitaría almacenar el tipo en tablas como la dirección, ya que la identificación es única en todos los tipos.
Solo quería saber si alguien tiene algún sentimiento sobre este método, si es un buen camino a seguir, o quizás alternativas.
Estoy usando SQL Server 05 & 08 si eso hace la diferencia.
Gracias
Ed
Entiendo lo que dices, sin embargo, no es posible almacenar una dirección o datos de contacto (teléfono móvil) contra cada tipo, ya que es muy probable que tenga más de una dirección/datos en cada tipo. También es posible que quiera compartir una dirección entre múltiples contactos, imagínense una familia. – MrEdmundo
Genial, una llamada justa, así que recomendaría ir por un conjunto plano de contactos/direcciones, etc., sin tipos específicos en tablas diferentes, simplemente defina el tipo en cualquier tabla que tenga sentido hacerlo. Nuevamente, erré en el diseño simple de la base de datos a menos que realmente tenga que ser complejo (p.conjuntos de datos masivos y volátiles). – Timbo