Verschillende entities met dezelfde eigenschappen

Pagina: 1
Acties:

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024
Ik zit met een denkprobleem. Ik heb bijvoorbeeld bedrijven en personen opgeslagen in losse tabellen. Deze heb ik apart gehouden want een bedrijf heeft bv. een KVK en BTW nr terwijl een persoon dat niet heeft. Nu hebben beide wél NAW gegevens. Nu kan ik de NAW gegevens in de tabel mee opslaan. Dat staat me dus een beetje tegen. Het verstrekken van NAW is niet required. Ik zou het liefst één mapper/model maken voor het opslaan van NAW gegevens in een enkele tabel. Dan zou ik dus bij uitlezen van alle NAW's (voor bv. massmailing etc) niet meer kunnen zien wat een bedrijf of een persoon is. Mijn oplossing: het opslaan van een entity_type in de NAW tabel. Dat zou het mogelijk maken om bv. in één keer alle personen met een ingevuld NAW op te halen door alles met dat entity_type uit de NAW tabel te halen en daar de personen tabel op te joinen.

Nu weet ik dat er vele wegen naar Rome leiden maar er meestal maar ééntje de kortste/beste is. Ik ben hier al een tijdje over aan het brainstormen maar ik twijfel ernstig of ik de goede kant aan het uitdenken ben en een beetje feedback zou echt geen kwaad kunnen. Ik neem aan dat dit toch een redelijk veel voorkomend probleem is doch kan ik er weinig tot niets over vinden of ik zoek verkeerd. Iemand die me de goede kant uit kant duwen kan? bvd!

Aunt bunny is coming to get me!


Verwijderd

Wat je voorstelt is gebruik te maken van wat een foreign key heet. Maar ik zou dat niet obv een type maar obv een id doen. Dus je hebt in feite drie tabellen:

Bedrijf tabel met id

Persoon tabel met id

NAW tabel met entity_id

De NAW bevat dan de foreign key entity_id waarmee je met een INNER JOIN kunt joinen met persoon en bedrijf en de NAW gegevens tonen. Ik gebruik de INNER JOIN omdat je dan alleen NAW gegevens krijgt van bedrijven/personen waarvoor deze gegevens ook daadwerkelijk bestaan.

Wat ook mogelijk is, is een andere benadering. Wat wij hier intern hebben zijn bedrijven of personen, maar personen zijn dan bijvoorbeeld éénmanszaken maar dan net niet :) (beetje land afhankelijk). De NAW gegevens worden bij het bedrijf opgeslagen en een persoon hoort bij een bedrijf. In de business laag kun je dan een soort facade aanleggen waarbij je persoonsgegevens laat zien en de NAW uit het onderliggende bedrijf haalt. Wanneer het een bedrijf betreft kun je gewoon alle bedrijfgegevens (dus incl. NAW) laten zien.

Ik hoop dat mijn opzet een beetje duidelijk is, het voordeel is dan dat je maar aan twee tabellen genoeg hebt en een foreign key relatie legt tussen de Bedrijf en Persoon tabellen.

Verwijderd

Als je bovenstaande methode gebruikt , zorg er dan wel voor dat de id's over de Bedrijf tabel en de Persoon tabel uniek zijn. gebruik bijv guids en geen integers.

  • SiErRa
  • Registratie: Februari 2000
  • Laatst online: 17-09 20:18
Of je maakt natuurlijk een NAW tabel met een eigen id die je bij bedrijf en persoon als FK opneemt.
FK's mogen in de meeste DB's ook null zijn, dus zijn de gegevens optioneel.