Springen naar inhoud

Primaire sleutels


  • Log in om te kunnen reageren

#1

FrankW

    FrankW


  • 0 - 25 berichten
  • 18 berichten
  • Gebruiker

Geplaatst op 11 juni 2011 - 10:29

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

Veranderd door FrankW, 11 juni 2011 - 10:30


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 11 juni 2011 - 12:14

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.

#3

FrankW

    FrankW


  • 0 - 25 berichten
  • 18 berichten
  • Gebruiker

Geplaatst op 18 juni 2011 - 11:14

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...

#4

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 18 juni 2011 - 13:00

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.

#5

FrankW

    FrankW


  • 0 - 25 berichten
  • 18 berichten
  • Gebruiker

Geplaatst op 18 juni 2011 - 13:07

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.

#6

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 18 juni 2011 - 15:07

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.

#7

Landro

    Landro


  • 0 - 25 berichten
  • 18 berichten
  • Gebruiker

Geplaatst op 22 september 2011 - 17:41

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.

#8

Xenion

    Xenion


  • >1k berichten
  • 2609 berichten
  • Moderator

Geplaatst op 22 september 2011 - 19:52

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'.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures