Diagram ERD - generalizacja

0

Jak się realizuje takie przypadki że "klientem może być osoba albo firma".
Można oczywiście zrobić w jednej tabeli osobę i firmę i zaznaczać w jednym atrybucie czy jest to firma ale załóżmy że chce to mieć osobno bo np. firmy będą miały większe przywileje do czegoś tam...
Więc zrobiłem to tak:
user image
W związku z tym że między tabelą klient-osoba i klient-firma zachodzi relacja 1:1 do tego identyfikująca to na klucz główny w tabeli klient składają się klucze główne osoby i firmy. Nie jest to chyba pożądane rozwiązanie...? Klientem może być osoba albo firma więc chyba będzie tu problem. Jak klientem będzie osoba to w tabeli klient co będzie w miejscu klucza Company_id?
Jeśli nie w ten sposób to jak się rozwiązuje takie przypadki? Pasuje tu jakaś generalizacja....

0

jak tak to podzielisz to tylko utrudnisz sobie życie, szczególnie przy wszelkiego rodzaju zestawieniach. Osoba i firma jest w jednej tabeli i tyle. Zauważ, że firma tak na prawdę nie ma dużo więcej danych. Imię i nazwisko to pole nazwa firmy, pesel to regon, adres to adres, nip to dodatkowe pole.

0
Lancer napisał(a)

Jak się realizuje takie przypadki że "klientem może być osoba albo firma".

Realizuje się to umieszczając osoby i firmy w jednej tabeli np. kontrahenci.

0

troche zalatuje to relacja wykluczajaca (arc relationship) i mozna kombinowac. Chyba jednak lepiej (na pewno prosciej) zastosowac rade AdamPL.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.