В настоящее время я занимаюсь реструктуризацией нашей базы данных управления контактами, и мне хотелось бы услышать мнения людей о решении проблемы с рядом типов контактов, имеющих общие атрибуты.
В основном у нас есть 6 типов контактов, которые включают Персона, Компания и Должность @ Компания.
В текущей структуре все они имеют адрес, однако в таблице адресов вы должны сохранить их тип, чтобы присоединиться к контакту.
Это непротиворечивое требование присоединиться по типу контакта через некоторое время разочаровывает.
Сегодня я наткнулся на пост, обсуждающий "Наследование таблиц" (http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server).
Обычно у вас есть родительская таблица и несколько вложенных таблиц (в данном случае каждый тип контакта). Оттуда вы обеспечиваете целостность, так что у подчиненной таблицы должен быть главный эквивалент, в котором определен ее тип.
На мой взгляд, с помощью этого метода мне больше не нужно хранить тип в таблицах, таких как адрес, поскольку идентификатор уникален для всех типов.
Я просто хотел узнать, есть ли у кого-нибудь какие-либо чувства к этому методу, хороший ли это путь или, возможно, альтернативы?
Я использую SQL Server 05 и 08, если это что-то изменит.
Спасибо
Ed