Databázový oříšek – firma,osoba = zakaznik
- bumprask
- Člen | 59
Zdravím,
mám tu takový ošemetný databázový oříšek, který nejsem schopný
vyřešit zatím.
Chci vytvořit evidenci KONTAKTŮ , tedy OSOB a FIREM a na to navázat evidencí ZÁKAZNÍKŮ. Vytvořím tedy tabulku OSOBY a tabulku FIRMY, každá má své specifika a svoje ID vrámci svojí entity. Ovšem jelikož zákazník může být jak osoba tak firma, potřebuju jedinečný společný identifikátor těchto dvou entit. Tedy, takový, který by umožnil, aby zákazníkem byla buď osoba nebo firma, v rámci systému by to byl pouze zákazník s přiřazeným ID.
Je možné vytvořit společného jmenovatele dvou tabulek tak, aby byl
normovaný a nemusel jsem psát pro vytvoření zákazníka tabulku ve
stylu.
ID_ZAKAZNIK ID_OSOBA nebo ID_FIRMA
Děkuju za komentář.
- Tabetha
- Člen | 140
u mna je to v jednej tabulke …rozdiel medzi osobou a firmou je v type spoločnosti(FO, PO) a hlavne to delím podla IČO …kedže osoba ičo nemá … a živnostník sa ráta medzi firmy … mám k tomu dočasne 2 reg. formuláre a tak … ale delením je F pre fyzickú osobu a P pre právnicku … nemohlo by to byť takto?
- llook
- Člen | 407
V podstatě máš na výběr dvě možnosti:
- Single Table Inheritance, tj. všechno v jedné tabulce: http://martinfowler.com/…ritance.html
- Class Table Inheritance – jednu společnou tabulku pro ID a další společné věci a pak jednu tabulku pro osoby a jednu pro firmy (osoby i firmy linkují tu společnou tabulku): http://martinfowler.com/…ritance.html
Vybrat si musíš sám. První možnost je implementačně jednodušší a je vhodná, pokud se osoby a firmy liší jenom v několika málo polích.