Ik wilde graag jullie mening horen over het correct ontwerpen van databases (en dan vooral over mijn gedacht daarover
) Hier gaan we dan
Ik een heel erge voorstander van koppeltabellen. Ook als deze niet direct nodig zijn. De reden waarom zal ik proberen uit te leggen aan de hand van een voorbeeld wat me zo te binnen schiet.
Voorbeeld 1:
Je verkoopt auto's en je wilt wat gegevens in een database opslaan. We slaan voor het gemak maar 2 dingen op, de naam van de auto en het merk.
Een database ontwerp zou kunnen zijn:
Merk (tabel)
MerkID
MerkNaam
Auto (tabel):
AutoID
AutoNaam
MerkID
In dit geval heeft de tabel merk een relatie met de tabel auto d.m.v. het MerkID. Dit kan in dit geval perfect omdat een auto maar 1 merk kan hebben. Het nadeel wat hier (volgens mij) aanzit is het volgende. Als ik een merk verwijderd kan dit niet, doordat er een relatie zit tussen de twee tabellen. Zou ik dan toch een merk willen verwijderen zou ik ook een auto moeten verwijderen (of het ID veld leeglaten en/of ander merk kiezen). Maar dit willen we niet. Ook al zijn er geen merken meer, de gegevens van de auto moeten beschikbaar blijven.
Voorbeeld 2 (zo zou ik het doen)
Merk (tabel)
MerkID
MerkNaam
Auto (tabel):
AutoID
AutoNaam
AutoMerk (koppeltabel)
AutoMerkID
AutoID
MerkID
De voordelen ten opzicht van voorbeeld 1 zijn wel duidelijk. Er wordt alleen een koppeling tussen de tabellen gemaakt. Als er in dit geval dus een merk zou verdwijnen zouden de gegevens over de auto in ieder geval blijven bestaan. Ook zou ik in dit geval meerdere merken aan 1 auto kunnen koppelen (als dit van toepassing mocht zijn natuurlijk). Een ander voordeel is dat het op deze manier veel meer uitbreid mogelijkheden heeft.
Ik zou hier graag jullie mening over willen horen, thanks
Ik een heel erge voorstander van koppeltabellen. Ook als deze niet direct nodig zijn. De reden waarom zal ik proberen uit te leggen aan de hand van een voorbeeld wat me zo te binnen schiet.
Voorbeeld 1:
Je verkoopt auto's en je wilt wat gegevens in een database opslaan. We slaan voor het gemak maar 2 dingen op, de naam van de auto en het merk.
Een database ontwerp zou kunnen zijn:
Merk (tabel)
MerkID
MerkNaam
Auto (tabel):
AutoID
AutoNaam
MerkID
In dit geval heeft de tabel merk een relatie met de tabel auto d.m.v. het MerkID. Dit kan in dit geval perfect omdat een auto maar 1 merk kan hebben. Het nadeel wat hier (volgens mij) aanzit is het volgende. Als ik een merk verwijderd kan dit niet, doordat er een relatie zit tussen de twee tabellen. Zou ik dan toch een merk willen verwijderen zou ik ook een auto moeten verwijderen (of het ID veld leeglaten en/of ander merk kiezen). Maar dit willen we niet. Ook al zijn er geen merken meer, de gegevens van de auto moeten beschikbaar blijven.
Voorbeeld 2 (zo zou ik het doen)
Merk (tabel)
MerkID
MerkNaam
Auto (tabel):
AutoID
AutoNaam
AutoMerk (koppeltabel)
AutoMerkID
AutoID
MerkID
De voordelen ten opzicht van voorbeeld 1 zijn wel duidelijk. Er wordt alleen een koppeling tussen de tabellen gemaakt. Als er in dit geval dus een merk zou verdwijnen zouden de gegevens over de auto in ieder geval blijven bestaan. Ook zou ik in dit geval meerdere merken aan 1 auto kunnen koppelen (als dit van toepassing mocht zijn natuurlijk). Een ander voordeel is dat het op deze manier veel meer uitbreid mogelijkheden heeft.
Ik zou hier graag jullie mening over willen horen, thanks