FrankW
Artikelen: 0
Berichten: 18
Lid geworden op: ma 22 jun 2009, 19:47

Primaire sleutels

Hallo,

Ik ben bezig met een website waarvoor ik ook een database nodig heb. Nu heb ik hierover de volgende vraag:

Ik heb een onderdeel waarvan erg veel gegevens opgeslagen moeten worden, zoals adres, facaliteiten en veel andere dingen. Ik zou al deze kolommen in 1 tabel kunnen plaatsen, maar dan krijg ik een tabel van ongeveer 30 kolommen breed. Nu vroeg ik mij af of ik ook het op zou kunnen splitsen in 4 losse tabellen die allemaal dezelfde primaire sleutel hebben. Maar mag dit of gaat het problemen geven bij het programmeren? Of moet ik hiervoor verwijssleutels gaan gebruiken?

Ik hoop dat het duidelijk is. ;) en iemand mij kan helpen.

Groeten,

Frank
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: Primaire sleutels

Er is niet echt een probleem met tabellen die 30 kolommen breed zijn. Tenzij je informatie uit die kolommen slechts zeer sporadisch nodig hebt, of vaak leeg zijn, heeft het weinig zin om die te gaan opsplitsen.

Als je gaat opsplitsen zal je de primaire key in de afgesplitste tabel moeten overnemen en die aanduiden als foreign key.
FrankW
Artikelen: 0
Berichten: 18
Lid geworden op: ma 22 jun 2009, 19:47

Re: Primaire sleutels

hoi, bedankt voor het antwoord. Ik heb alleen even geteld en het zijn bijna 50 kolommen. Het kan natuurlijk wel, maar mijn vraag is of dit bij andere websites die veel gegevens opslaan ook gebeurt. Bij krijg je dan 5 tabellen die allemaal dezelfde primaire sleutel hebben...
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: Primaire sleutels

Het hangt er echt vanaf hoe groot de data is, op welke manier je ze gaat benaderen...

Wanneer je meestal maar 1 rij nodig hebt zou ik alles in 1 grote tabel houden.

Als je vaak een groot aantal rijen die na elkaar liggen moet ophalen en meestal maar enkele velden nodig hebt (zoals enkel de naam bv) kan je best gaan opsplitsen.

Er is geen éénduidig correct antwoord, je moet zelf eerst goed het gebruik van je data kennen.
FrankW
Artikelen: 0
Berichten: 18
Lid geworden op: ma 22 jun 2009, 19:47

Re: Primaire sleutels

Er komen wel veel rijen in de tabel dus daarom zou opsplitsen handiger zijn. Maar daarnaast zijn de meeste data booleans: aan of uit. Heeft dat dan nog invloed? Ik dacht dat het voor het overzicht wel makkelijker zou zijn om het in meer tabellen te zetten. Zij het dan wel dat je daar dan iets langere query's van krijgt.
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: Primaire sleutels

Er komen wel veel rijen in de tabel dus daarom zou opsplitsen handiger zijn. Maar daarnaast zijn de meeste data booleans: aan of uit. Heeft dat dan nog invloed? Ik dacht dat het voor het overzicht wel makkelijker zou zijn om het in meer tabellen te zetten. Zij het dan wel dat je daar dan iets langere query's van krijgt.


Als de meerderheid booleans zijn zou ik deze in dezelfde tabel houden.
Landro
Artikelen: 0
Berichten: 18
Lid geworden op: wo 20 jan 2010, 21:21

Re: Primaire sleutels

Alles in 1 tabel is handiger. Dat bespaart je extra joins en het maakt je queries dus sneller. In queries kun later altijd nog zelf aangeven welke velden wel of niet moeten worden opgehaald.
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Primaire sleutels

1 grote tabel is altijd mogelijk, maar is meestal een slechte designkeuze.

Je zou eens moeten kijken of je die hele boel niet kan uiteentrekken in entiteiten zoals bv 'klant' en 'boek' en deze dan kan linken via relaties 'aankoop'.

Terug naar “Informatica en programmeren”