achtbaantrein + stoelen
- trein id
- achtbaan id
- aantal rijen
- aantal stoelen per rij
- stoelen bereden
In "stoelen bereden" komt een komma gescheiden waarde, dat lijkt me voldoende.
Opgelost zou je zeggen, maar nu zijn er ook achtbanen met een afwijkende treinopstelling, bijv. Vliegende Hollander in de Efteling. Waar de meeste treinen bestaan uit hetzelfde aantal stoelen per rij, heeft deze trein 2 rijen van 3 en 2 van 4 stoelen (3,4,3,4).
Of het de moeite is weet ik niet, ik heb namelijk nog niet onderzocht of dit vaker voor gaat komen, maar hoe zouden jullie dit aanvliegen? Een tweede tabel met afwijkende treinen? Een andere indeling van de bestaande tabel?
Het lijkt me logischer om tabellen te maken voor bijv treinen, stoelen, personen en ritten. Een rit is dan een combi van een trein_id, stoel_id, persoon_id en bijv een datetime of timestamp. Als je dan bijvoorbeeld wilt weten hoe vaak stoel x in trein y op dag z is gebruikt, is dat een vrij simpele query.
Voor nu ben ik dus zoekende naar ideeën voor de afwijkende treinen.
De opstelling van een bepaalde trein kun je dan opvragen met
Code (php)
1
2
3
4
2
3
4
SELECT rij_nr, stoel_nr
FROM stoelen
WHERE trein_id = ?
ORDER BY rij_nr ASC, stoel_nr ASC
FROM stoelen
WHERE trein_id = ?
ORDER BY rij_nr ASC, stoel_nr ASC
Gewijzigd op 11/10/2022 15:07:30 door Jan Koehoorn
Python: 2|14|1,14
Voor DVH zou dat moeten zijn (3,4,3,4)|6
Ik ben even benieuwd: heb je een voorbeeld van een query waarmee je zo'n veld uitleest en weer opsplitst in de afzonderlijke waarden?
Los van het feit dat dit niet genormaliseerd is, zou een notatie in JSON al beter zijn.
De waarde uit de kolom "bereden" splits ik met een explode. Vervolgens heb ik de rijen en stoelen, die gegevens loop ik om een table te maken, ieder volgnummer die dan voorkomt in bereden kleur ik groen.
In JSON zou dat inderdaad praktischer zijn .