was ist, wenn ein zug mehr als 4 sondertermine hat?
dafür muss man eine neue tabelle anlegen.
vorschlag:
tabelle "züge":
- id
- name (linie oder was auch immer)
tabelle "fahrten":
- id
- zug_id
- zeit (vom typ TIME)
- wochentage (*)
- andere infos (gleis etc.)
tabelle "sonderfahrten":
- id
- zug_id
- datum (DATE oder DATETIME)
zu (*):
ich würde ein wenig in die trickkiste greifen und BIT (
http://mysql.org/doc/refman/5.0/en/b...ld-values.html) vorschlagen - dieser datentyp passt in ein byte und eignet sich hervorragend, um mittels bitmaskierung die wochentage zu kodieren, an denen der zug fährt. z.b.:
fährt der zug werktags, schreiben wir 1111100 in die db. fährt er nur dienstags und am wochenende, schreiben wir 0100011.
für das where statement müsste man nun einen bitstring vorbereiten, der dem heutigen tag entspricht. heute (sonntag) wäre es 0000001. fragt man nun in der db nach
Code:
... WHERE (`wochentage` & b'$bitstring') != 0
werden nur fahren selektiert, die am sonntag stattfinden. sortieren wir diese nach uhrzeit, haben wir bereits einen fahrplan für heute. ein JOIN für die zug-informationen und eine extra abfrage (evtl. mit UNION, wenn es sinn macht) für die sonderfahrten.