Database model

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stien ss

stien ss

25/01/2012 23:14:32
Quote Anchor link
Hey,

Ik ben op het moment bezig een database model te maken, maar vraag me af hoe jullie dit zouden doen.

Ik heb een tabel: bankaccounts
En een tabel: transactions

Een transaction is van een bankaccount naar bankaccount. Nu moet het mogelijk om verschillende entiteiten aan de bankaccounts tabel te koppelen, even uitgelegd:

3 tabel: airports, hospital en accounts

Bij een entiteit hoort precies 1 bank-account. Maar hoe regel ik dit met foreign keys?

1. Maak ik per entiteit (airports etc) een extra tabel bankaccounts_airports (kolommen: bank_account, airport). Maar dan heb ik altijd 2 queries nodig (of een hele grote join) om te kijken bij welke entiteit een bankaccount hoort.

2. Of maak maak ik extra kolommen in bankaccounts (eg: airport_id, hospital_id..), maar dan kan 1 bankaccount bij meerdere entiteiten horen, bijv een airport en een hopital.

3. Of maak ik geen gebruik van Foreign Keys en maak ik een extra kolom in de bankaccounts tabel: type. Dan weet ik als ik het type heb en het entiteit_id, welke tabel ik moet zijn. Alleen heb ik dan dus geen FKs.

Gaat dus om een soort van overerving van een tabel, maar geen van deze oplossingen lijkt plausibel, iemand een idee?
 
PHP hulp

PHP hulp

22/12/2024 17:00:46
 
- Jim  -

- Jim -

25/01/2012 23:18:08
Quote Anchor link
"There is no silver bullet!"
Er is geen oplossing dat altijd het beste is.

Je moet het dus gaan afwegen op wat je precies wilt, rekening houdend met hoe het mogelijk kan groeien.

Een optie is om bij airport en hospital een kolom AccountId toe te voegen (FK).

Lijkt me een passende oplossing.
 
- SanThe -

- SanThe -

25/01/2012 23:19:07
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.