in mijn site heb ik nood aan een viertal tabellen binnen mijn database om de nodige gegevens te kunnen bijhouden.
Ik heb niet veel (lees: heel weinig) ervaring met MySql en het opbouwen van databases. Daarom zou ik jullie hier eens willen vragen wat je van de opbouw van de tabellen vind. Het kan vast en zeker nog wel verbeterd worden... Graag jullie input
De gegevens die ik in de tabellen zal plaatsen komen vanuit een invul formulier op de admin pagina. Wat ik me dan nog afvraag is of ik best objecten maak om op te slaan in de database tabellen of gewoon te "tekst" uit het formulier rechtstreeks in de tabellen stockeer...
Misschien lijken dit voor sommigen onder jullie simpele vragen, maar zoals ik al zei, ik heb heel weinig ervaring met dit soort dingen.
Want met moedermoedermoedermoeder wordt je db niet echt modulair eh? ,
Als je bovenstaande tabbeltje gebruikt kan je doen 0 wanneer er geen vader/moeder is, en wanneer er wel een is, doe je het id daarvan.
De stamboom gaat 3 generaties ver en wordt door de gebruiker zelf in gevuld in een reeks tekstvelden. Hoe kan ik dan alles correct in de tabellen krijgen.
Want ik veronderstel dat volgens jou oplossing ik twee extra tabellen zal nodig hebben (vaderMerries en moederMerries)
Want ik veronderstel dat volgens jou oplossing ik twee extra tabellen zal nodig hebben (vaderMerries en moederMerries)
Nee, gewoon een extra veldje "mannelijk" (of geslacht),
en dan bijv een `1` voor mannelijk, `2` voor vrouwelijk.
het invoeren zou ik persoonlijk doen met javascript ,
of een reeks formulieren achter elkaar,
waarvan de laatste optie het makkelijkst is.
Je zou dan bijv: formulier waar je een paard invoerd.
(alleen het paard zelf, geen info over de ouders)
en daarna, kan je paard selecteren,
en dan kiezen voor: kind toevoegen, of ouder toevoegen
waarnaar je verwijsd naar het zelfde formulier als daarvoor, alleen dan een extra ID meegeeft van de `ouder`,
en aan de hand van het geslacht bepaal je dan weer of het een vader of moeder is
Je site opbouw zou dan dus zijn:
1. Selecteer paard (je overzicht van alle paarden zeg maar)
***3. Maak paard aan met optie 1 als ouder
(geef id & geslacht mee van optie 1)
***4. Maak paard aan met optie 1 als kind
(verander na invoer, het ouder id van het geselecteerde paard van optie 1 [aan de hand van dat geslacht weer vader/moeder aanpassen)
2. Maak paard aan (zonder ouders)
Waarvan optie 1 & 2 direct beschikbaar zijn , en optie 3 & 4 alleen nadat er een paard is geselecteerd (hier kan je dan ook de stamboom bijv weergeven)
mijn "opdrachtgever" verwacht eigenlijk een vast rooster die moet ingevuld worden.
Dat rooster bevat ook een vaste structuur, zoals hieronder snel even "uitgetekend". Op de site moet nog een niveau dieper gegaan worden. Het enige wat de gebruiker wenst in te vullen is de naam van het paard. De structuur ligt vast zoals hier onder. De bovenste "cel" is altijd de vader, de onderste "cel" altijd de moeder.
--------------------------------
vader v vader
vader
moeder v vader
merrie
vader v moeder
moeder
moeder v moeder
--------------------------------
nogmaals ik ben een beginner hoor daarom stel ik misschien "domme" vragen
schop je opdrachtgever en zeg hem een fatsoenlijke structuur te nemen?
maar met bovenstaande veldjes kan het imho ook, (tabel die ik voorstelde)
simpel gezegd:
voeg eerst toe in de database: `vader v vader`
hierin is:
isHengst = true
vaderPaardId = 0
moederPaardId = 0
Nu run je het command `select_last_id`
hiermee haal je de primary key op, van het laatst ingevoerde item
deze sla je even in een php var op": $vaderVanVaderId
nu stop je op dezelfde wijze `moeder v vader` erin,
alleen dan is `isHengst` uiteraard false
en deze stop je in $moederVanVaderId
Hierna hetzelfde, alleen dan voor de ouders van de moeder.
Vervolgens
voer je de `vader` in,
en doe je:
vaderPaardId = $vaderVanVaderId
moederPaardId = $moederVanVaderId
isHengst = true
en hetzelfde voor de moeder , alleen dan met de goede ouder id's
pfieuw, ziet er al vrij complex uit voor mij...
Zal dit wel eens proberen te implementeren... maar of het succesvol zal aflopen is maar weer de vraag.
Ik ben er echter wel 100% van overtuigd dat dit een betere en flexibelere oplossing is dan deze die ik tot nu toe in mijn hoofd had...
Dus als ik het tot nu toe allemaal goed begrijp:
3 tabellen aanmaken (paard, vader en moeder tabellen). Dan starten met het invullen van de verste graad in de stamboom in de juiste tabellen en zo opschuiven tot dat de merrie in de database zit...
Je hebt maar 1 tabel nodig ,
het overige heb je wel goed,
je begint op de buitenlaag (hiervan heb je geen ouderId's nodig, dus deze zijn 0.
vervolgens heb je wel de beschikking over deze id's, dus kan je naar binnen gaan werken.