• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kalender in Lsistenform mit Kategorien pro Tag

Cluster

Neues Mitglied
Kalender in Listenform mit Kategorien pro Tag

Hallöchen zusammen :)

also ich mach mir gerade Gedanken zu einem Script das mir fortlaufend einen Monat von oben nach unten anzeigt,
so dass ich für jeden Tag beliebig viele Kategorien anlegen kann und für jeden Tag einmal einen normalen Wert eintragen kann und einmal einen zweiten Spezialwert pro kategorie,
dies würde etwa so aussehen:



Nur tu ich mich sehr schwer beim Datenbankmodel da ich sowas noch nie gemacht habe, sollte ich hier am besten 2 Tabellen machen?

Etwa: 1 Tabelle mit den Kategorien, 1 Tabelle mit den Werten (Special und normal pro Kategorie und von wann bis wann dieser Wert gilt?)

Oder besser einfach alles in eine Tabelle und als Unique Key dann das Datum,
z.B. an Tag X kostet Kategorie I das und als Special das und Kategorie II das und als Special das, Kat III das und das ... usw?

Hab verschiedene Ansätze probiert und Tabellen angelegt aber komme nicht auf was wirklich brauchbares bisher.
Hat jemand schonmal ähnliches gemacht oder kann mir evtl grob sagen wie die Datenbankstrucktur optimal aussehen könnte später?

Wäre wirklich klasse, mir gehts auch nicht darum das mir was vorgekaut wird, sondern einfach darum das ich einen Denkanstosser brauche, sitz da nun schon ne weile dran und stehe wohl schon aufm Schlauch :D

(ich hoffe man kann mir folgen :D )
 

Anhänge

  • kategorien.jpg
    kategorien.jpg
    22,5 KB · Aufrufe: 10
Zuletzt bearbeitet:
Werbung:
Hallo,

Du brauchst 2 Tabellen.

1. Tabelle enthält eine fortlaufende einzigartige ID, und das Datum
Tabelle tab_Datum

IDDatum
12011-12-01
22011-12-02
32011-12-05






Wir haben hier Einträge für den 1.12. den 2.12. und den 4.12.2011 vorliegen. Am 3. und 4.12. lagen keine Einträge vor da Wochenende.(Beispiel)


2. Tabelle enthält alle Kategorien mit Preis nach Datum zugeordnet
tab_Kat_Dat
IDDatIDKategoriePreis
111.99
212.49
3131.99
414.99
521.88
622.79
7231.09
8242.99
............
11333.47
















Wir können in die 2. Tabelle so viele Kategorien und Preise einfügen wie wir möchten, solange alle Kategorien gleich sind, sonst würden wir eine weitere Tabelle benötigen.

Anhand der DatID können wir nun zu jedem Datum die Kategorie und den jeweiligen Preis ausgeben.
Mit PHP und MySql sähe die Abfrage so aus:
$SQL = "SELECT DatID, Kategorie, Preis FROM tab_kat_dat";

Unsere Ausgabe wäre nun:

DatIDKategoriePreis
11.99
12.49
131.99
14.99
21.88
22.79
231.09
242.99
.........
333.47
















Nun ersetzen wir mit einem Join die DatID aus unserer ersten Tabelle.
$SQL = "SELECT tab_Datum.Datum, Kategorie, Preis FROM tab_Kat_Dat JOIN tab_Datum" WHERE tab_Datum.ID=tab_Kat_Dat.Dat_ID";


tab_Datum.DatumKategoriePreis
2011-12-011.99
2011-12-012.49
2011-12-0131.99
2011-12-014.99
2011-12-021.88
2011-12-022.79
2011-12-0231.09
2011-12-0242.99
.........
2011-12-0533.47
















Besser ist hier sogar noch ein LEFTJOIN zu verwenden und die Ausgabe dann auf einen Monat zu begrenzen.
Man kann mit SQL sich so ziemlich alles rausfiltern was eine Tabelle her gibt.
 
Das mit dme Leftjoin werd ich aufjedenfall versuchen,
zunächst jedoch vielen, vielen Dank für das "Tutorial", sehr gut und anschaulich,
ich werd meine Weiterentwicklung hier auf jeden Fall posten, da ich noch einen Eventplaner einbaun werde und andere "Gimmicks" :)

Danke nochmal,

lG
 
Werbung:
Ohne groß auszuholen würde ich dir raten dich mit Normalisierung (Datenbank) auseinanderzusetzen.
Dort sind auch schöne Beispiele zu jeder Normalform aufgezeigt.

Nur als Tip noch: Ab der 4. Normalform muss man abwägen auf die Normalisierung zu Gunsten der Performance zu verzichten. Die ersten 3 Normalformen sind aber in der Regel ohne Auswirkungen auf die Performance der Applikation umsetzbar.
 
@Wustersoss:

Viel zu langweilig :)

Hab schon sehr gute Eventplaner in AJAX/JS gebaut und mit Datenbankanbindung etc.,
Mir gehts nun darum meine Bausteine zusammenzusetzen.
Das da oben ist nur ein Baustein, aber will lieber alles selber machen, will mehr lernen usw.

Ohne groß auszuholen würde ich dir raten dich mit Normalisierung (Datenbank) auseinanderzusetzen.
Dort sind auch schöne Beispiele zu jeder Normalform aufgezeigt.

Nur als Tip noch: Ab der 4. Normalform muss man abwägen auf die Normalisierung zu Gunsten der Performance zu verzichten. Die ersten 3 Normalformen sind aber in der Regel ohne Auswirkungen auf die Performance der Applikation umsetzbar.

Danke, die Idee kam mir gestern Abend auch noch und ich hab auch schon eine normalisierung in mehreren Stufen vorgenommen, bin nun bei der 4. Form und melde meine ergebnisse sobald ich irgendwann heute fertig bin :)
 
Werbung:
Zurück
Oben