Obecnie analizuję naszą bazę danych do zarządzania kontaktami i chciałem usłyszeć opinie ludzi na temat rozwiązania problemu wielu typów kontaktów mających wspólne atrybuty.Tabela "Dziedziczenie" w SQL Server
Zasadniczo mamy 6 typów kontaktów, które obejmują osobę, firmę i stanowisko @ firma.
W obecnej strukturze wszystkie mają adres, jednak w tabeli adresów należy zapisać ich typ, aby dołączyć do kontaktu.
Ten spójny wymóg dołączania do typu kontaktu po pewnym czasie staje się frustrujący.
Dzisiaj natknąłem się na post omawiający "Dziedziczenie tabeli" (http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server).
Zasadniczo istnieje tabela nadrzędna i wiele podtablic (w tym przypadku każdy typ kontaktu). Stamtąd wymuszasz integralność, aby tabela podrzędna musiała mieć wzorzec główny, gdzie zdefiniowany jest typ.
Sposób, w jaki go widzę, dzięki tej metodzie nie będę już musiał zapisywać typu w tabelach takich jak adres, ponieważ identyfikator jest unikalny we wszystkich typach.
Po prostu chciałem się dowiedzieć, czy ktoś ma jakiekolwiek uczucia odnośnie tej metody, czy jest to dobry sposób, czy może alternatywa?
Używam programu SQL Server 05 & 08 powinien to mieć znaczenie.
Dzięki
Ed
Rozumiem, co mówisz, jednak przechowywanie adresu lub danych kontaktowych (telefonu komórkowego) przeciwko każdemu rodzajowi nie jest możliwe, ponieważ bardzo prawdopodobne jest, że będę mieć więcej niż jeden adres/dane dla każdego rodzaju. Możliwe też, że chcę podzielić się adresem między wieloma kontaktami, wyobrazić sobie rodzinę. – MrEdmundo
Fajnie, rzetelna rozmowa, więc polecam iść na płaski zestaw kontaktów/adresów itp., Bez konkretnych typów w różnych tabelach, po prostu zdefiniuj typ w tabeli, która ma sens. Ponownie, błędnie zaprojektuj prosty projekt bazy danych, chyba że naprawdę musi być skomplikowany (np.masowe i zmienne zestawy danych). – Timbo