een vreemde vraag ongetwijfeld
queries over 3 tot 4 tabbelen bezorgen me hoofdpijn en tussentabellen is een heel gedoe om deze goed in te voeren. id naamgegevens bij id rubriek gegevens... etc
daar maak je ook snel een fout mee.
Kortom als iemand mij een goede reden kan geven voor het opzetten van 4 tabellen in plaats van 1 ben ik om.
Heb ze gelezen en toegepast maar ondervind problemen met de invoer en met respect voor alle regels, ik vind geen info over als je de regels aan je laars lapt en gewoon 1 tabel maakt. Er wordt ook op het web geadviseert niet teveel tabellen te maken omdat de output te traag wordt (vanwege het doorlopen van de database van de vele tabellen).
Mijn vraag blijft dus: wat kan er fout gaan als je 1 tabel handhaaft
dat is ook een reden waarom het gebruik van * in database query's afgeraden word/is...
Het word pas traag als de gebruiker/programmeur het verkeerd/omslachtig ophaald..
Het gebruik van maar 1 tabel lijd tot veel dubbele data in de database die je anders niet hebt... mocht dat gebeuren dan bestaat de kans dat je de database corrupt kan worden en dat je de verkeerde data krijgt of geen...
ps. waar heb je gelezen dat het dan zo traag word ?
een id voor de persoon en vervolgens in tabellen voor woonplaats, naam, telefoonnummer en emailadres (of iets dergelijks) het id van de persoon koppelen aan het gegeven van die tabel?
Ik persoonlijk zou gewoon 1 tabel maken (persoon) met 5 velden (kolommen), nl:
id, naam, woonplaats, telefoonnummer en emailadres.
Als dit tegen de conventies in gaat: daar heb ik lak aan in dit geval, ik weet uit ervaring dat dit makkelijker werkt en heel veel queries scheelt op het moment dat er meerdere gegevens moeten worden gewijzigd voor 1 persoon.
Het is inderdaad wel zo, dat de snelheid met name te maken heeft met de manier van ophalen van de gegevens. zels al heb je er 3 van de 4 nodig, geef ze dan alle 3 op in je query, ipv * gebruiken (om toch alle 4 te nemen)
Te veel dubbele data begrijp ik, maar ik heb geen dubbele data dus waarom zou ik dan telefoonnummers of steden apart opnemen?
Dit is waarom ik de vraag stelde.
Het is een gids waar je adres gegevens ophaalt.
Een zoekfunctie is trouwens ook zéér simpel met 1 tabel, hoef je geen JOINS te maken maar gewoon een paar LIKE's.
Dank voor je respons
Als het om een recht-toe recht-aan adressenlijst gaat, dan zou ik alles in 1 tabel zetten.
vind ik dus ook
Ineke kleinloog op 24/01/2012 14:46:26:
Te veel dubbele data begrijp ik, maar ik heb geen dubbele data dus waarom zou ik dan telefoonnummers of steden apart opnemen?
De basis is de volgende; je moet je zelf deze vraag stellen:
"Is er een 1 op 1 verhouding?"
Indien 1 persoon slechts 1 telefoonnummer kan hebben, zet je het telefoonnummer in de tabel "users" (of hoe je het ook zelf noemt).
Indien 1 persoon meer dan 1 telefoonnummer kan hebben, zet je het in een aparte tabel.
Dito met andere data, zoals adressen (geografisch), e-mail-adressen, ...
Dit zijn beslissingen die je zelf kan nemen.
Als je een uitgebreid profiel wil, kan het nuttig zijn dit soort dingen in een aparte tabel te zetten.
1 mens kan een huis hebben waar hij woont, maar verder ook een studentenkot of een (1 of meer) buitenverblijf.
1 mens kan ook verschillende telefoonnummers of e-mail-adressen hebben, ...
De keuze ligt dus aan jou.
Jij gaat slechts uit van 1 persoon => 1 telefoonnummer.
Dan zet je "telefoonnummer" in de tabel users.
Wat ik je echter niet wil zien doen (Je doet uiteraard wat je wil; ik ben je mama niet), is standaard drie velden maken "telefoon1", "telefoon2", "telefoon3", zodat je toch de mogelijkheid hebt om meerdere gegevens in de tabel te proppen. Als je op zo'n manier bezig bent, ben je waarschijnlijk fout bezig.
Gewijzigd op 24/01/2012 17:46:21 door Kris Peeters
Gewijzigd op 24/01/2012 18:30:53 door Aad B
Ik wil wel de mogelijkheid voor meerdere telefoonnummers opnemen
en meerdere emailadressen had ik niet aan gedacht, bedankt voor deze tip !!
Het moet zoekgidsje worden en ik bedacht dat 1 tabel handiger en makkelijker is
en hiermee doel ik op de zoekfunctie. De query's zijn lastig.
Meerdere JOINs met meerdere zoekfilters en dan in 1x output krijgen.
Op het web staat helaas weinig informatie hierover die ik kan gebruiken
AL met al zie ik nu in dat meerdere tabellen noodzakelijk blijken,
ook als ik later nog extra gegevens zou willen toevoegen.
Allen bedankt in ieder geval