Citat:
Originally posted by mephisto73@Feb 20 2009, 15:43
Säg att vi har ett objekt som skall kunna bokas en dag , eller flera veckor åt gången. Hur hanterar man bokningen? Ska man lagra dag för dag (DATE type) som rader i en tabell kopplat till objektet eller kan man hantera det på ett bättre sätt?
|
Datumintervall är bland det krångligaste man kan spara i databaser (även om BETWEEN kan vara oerhört praktiskt).
Antigen lägger du till ett DATUM, KUND_ID för varje dag som är bokad eller så lägger du in bokad FRÅN,TILL,KUND_ID. vilket som är bäst är svårt att säga eftersom det beror på om du är ute efter prestanda eller plats och beror dessutom på om kunder normalt sätt bokar en dag eller flera månader. Sedan beror det också på om du vill optimera för snabba sökningar eller snabba bokningar.
Mitt tips är att inte blanda in tid ännu - ett TIME kan du lägga in senare. (Någon annat kanske tycker annat här men det innebär en hel del extra komplexitet och om du känner dig osäker på detta så håll det så enkelt som möjligt.)
Mitt tips är att normalisera så långt som möjligt - jag har aldrig ångrat att jag normaliserat för mycket men ofta att jag har tagit en genväg (just då) och släng in någon olämplig data i något fält eller lagt till ett extra fält som borde ha varit en egen tabell.