De opmaak van het databasemodel:

De query:
Zoals jullie kunnen zien is het dus de bedoeling om o.a. de gelinkte jaren uit de jarentabel te destilleren (er staan in het volledige model natuurlijk meerdere jaren in de jarentabel). Het probleem is alleen dat er bij de bovenstaande query meer dan een keer een jaar kan worden geselecteerd. Dit gebeurt omdat er meerdere wedstrijden aan een jaar gelinkt kunnen worden.
Welnu, ik heb om dit probleem tegen te gaan de volgende twee oplossingen bedacht:
1. Een php-functie die de dubbele jaren verwijderdt (nadat ze uit de database zijn gedestilleerd).
2. Een extra kolom in de jarentabel waarin ik doormiddel van een integer het aantal bindingen bijhoud. Je zou dan een volgende query kunnen krijgen om de gelinkte jaren op te halen: SELECT jaar FROM jaren WHERE bindingen > 0.
Echter ben ik benieuwd of jullie met een mooiere oplossing kunnen komen. Is het bijvoorbeeld mogelijk om een commando in een query te zetten waardoor er alleen originelen worden geselecteerd? Waardoor er dus niet meer dan 1x dezelfde waarde wordt geselecteerd?

De query:
code:
1
2
3
4
5
6
7
8
| SELECT
contest_years_contests.contest_year_id, contest_years_contests.contest_id, contest_years.contest_year
FROM
contest_years_contests, contest_years
WHERE
contest_years_contests.contest_year_id = contest_years.contest_year_id
ORDER BY
contest_years.contest_year |
Zoals jullie kunnen zien is het dus de bedoeling om o.a. de gelinkte jaren uit de jarentabel te destilleren (er staan in het volledige model natuurlijk meerdere jaren in de jarentabel). Het probleem is alleen dat er bij de bovenstaande query meer dan een keer een jaar kan worden geselecteerd. Dit gebeurt omdat er meerdere wedstrijden aan een jaar gelinkt kunnen worden.
Welnu, ik heb om dit probleem tegen te gaan de volgende twee oplossingen bedacht:
1. Een php-functie die de dubbele jaren verwijderdt (nadat ze uit de database zijn gedestilleerd).
2. Een extra kolom in de jarentabel waarin ik doormiddel van een integer het aantal bindingen bijhoud. Je zou dan een volgende query kunnen krijgen om de gelinkte jaren op te halen: SELECT jaar FROM jaren WHERE bindingen > 0.
Echter ben ik benieuwd of jullie met een mooiere oplossing kunnen komen. Is het bijvoorbeeld mogelijk om een commando in een query te zetten waardoor er alleen originelen worden geselecteerd? Waardoor er dus niet meer dan 1x dezelfde waarde wordt geselecteerd?