Kalender verwenden

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

ich habe die ehrenvolle Aufgabe ein Programm zu schreiben, das für jeden Tag einen Eintrag zulässt.
Somit benötige ich einen Kalender. Die Auswertung später soll auf Tage, Kalenderwochen, Monat und Jahr erfolgen.
Hier fängt mein Designproblem an:
Würdet ihr in der Datenbank schon vorher alle Tage anlegen (ID, Jahr, Monat, KW,Tag) um dann intern mit den IDs zu arbeiten oder ist es eleganter, einen Kalender über php anzubieten und dann nur an den relevanten Tagen einen Eintrag in die DB zu schreiben?
Es werden vermutlich ca 30 Einträge pro Kalendertag zu erwarten sein.
 
Hi

Würdet ihr in der Datenbank schon vorher alle Tage anlegen
Nein, sicher nicht.
a) Sinnlose Daten
b) Was sind "alle" Tage? Weißt du 100% sicher, bis man dein Programm verwendet wird?

(ID, Jahr, Monat, KW,Tag)
Lass die KWs draußen. Redundanz, Normalisierung...

Also Tagetabelle mit ID, Y, M, D (bzw. bessere Namen), Key auf ID und Unique auf (Y,M,D) zusammen; dazu dann die Datentabelle mit (Daten)ID (Key), TageID, Eintrag.

einen Kalender über php anzubieten

Wie das auf HTML (PHP?) - Seite ausschaut ist von der DB (hoffentlich) komplett unabhängig.
 
Gibt eigentlich keinen Grund, Tag/Monat/Jahr aufzudröseln. Es gibt einen Datentyp DATE, der genau die Daten umfasst. Wären also ID, Datum (als DATE) und Eintragsdaten. Bzw. kannst du auch ruhig DATETIME nehmen und die Eintragszeiten auch mit ablegen. Weil: Wieso nicht? Das kann für Sortierungen nützlich sein.

Dann mal hier stöbern: http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

Ob ein Unique-Index auf die Datumsspalte Sinn ergibt, hängt dann davon ab, wie das hier…

ich habe die ehrenvolle Aufgabe ein Programm zu schreiben, das für jeden Tag einen Eintrag zulässt.

Es werden vermutlich ca 30 Einträge pro Kalendertag zu erwarten sein.

…genau zu verstehen ist. ;)

Ein normaler Index (nicht unique) für die Spalte ist aber vermutlich aus Performancegründen sinnvoll.
 
Bei Timestamp-Datentypen "mit" unique-Anforderung wird es ggf. etwas umständlich sicherzustellen, dass jeder Tag nur einmal vorkommt ( Zeitzonenwahnsinn, Schaltsekunden... :D )
 

Neue Beiträge

Zurück