|
| Bookingsystem - kalender i database? Fra : Rasmus Nielsen |
Dato : 13-07-02 12:15 |
|
Hej,
Jeg er ved at lave et bookingsystem for ca. 30 lejligheder i ASP og Access.
Man skal kunne booke hele uger og enkelte dage. Selve ASP'en har jeg ikke
problemer med, men jeg spekulerer på, hvordan jeg mest hensigtsmæssigt
bygger databasen op?
Har nogen af jer evt. erfaring med et sådant system, hvor databasen nærmest
skal repræsentere en kalender? Hvad har i gjort?
--
Venlig hilsen / Best regards,
Rasmus Nielsen.
| |
Kim Bach Petersen (13-07-2002)
| Kommentar Fra : Kim Bach Petersen |
Dato : 13-07-02 13:52 |
|
> Har nogen af jer evt. erfaring med et sådant system, hvor databasen
nærmest
> skal repræsentere en kalender? Hvad har i gjort?
Jeg tror, jeg ville lave to tabeller: En med data for selve bookingen
(bookers navn, lejlighed, etc.) og en med enkelte datoer knyttet til de
enkelte bookinger.
tBooking: BookingId (primærnøgle), Navn, Lejlighed
tKalender: DatoId (primærnøgle), BookingId (ref. tBooking)
Ugevise bookinger således vil repræsenteres ved 7 poster i tKalender. På
denne måde er det let at få overblik over bookinger som sådan og samtidig
let at søge på frie/optagede dage (eventuelt grupperet efter BookingId).
Kim
--
· www.kensho.dk · psykologi og spiritualitet ·
| |
Rasmus Nielsen (13-07-2002)
| Kommentar Fra : Rasmus Nielsen |
Dato : 13-07-02 17:03 |
|
> Jeg tror, jeg ville lave to tabeller: En med data for selve bookingen
> (bookers navn, lejlighed, etc.) og en med enkelte datoer knyttet til de
> enkelte bookinger.
Den er kun til brug for ejeren af lejlighederne til at finde id af, om
lejligheden er fri en given uge/dag.
Min bekymring er, hvordan jeg får et felt for hvert dato, mht. skudår osv.
--
Venlig hilsen / Best regards,
Rasmus Nielsen.
| |
Kim Bach Petersen (13-07-2002)
| Kommentar Fra : Kim Bach Petersen |
Dato : 13-07-02 18:09 |
|
Jeg retter lige mig selv en smule: Selve datoen skal selvfølgelig med i
tKalender:
tBooking: BookingId (primærnøgle), Navn, Lejlighed
tKalender: DatoId (primærnøgle), BookingId (ref. tBooking), Dato
Ugevise bookinger således vil repræsenteres ved 7 poster i tKalender. På
denne måde er det let at få overblik over bookinger som sådan og samtidig
let at søge på frie/optagede dage (eventuelt grupperet efter BookingId).
> Min bekymring er, hvordan jeg får et felt for hvert dato, mht. skudår osv.
Du behøver kun en post for hver af de bookede dage, så det er intet problem
med den foreslåede database-struktur. Databasen behøver med andre ord ikke
at være en kopi af en årskalender - det ville være spild af plads og
servertid!
Hvis problemet endelig skulle være dér, ville det for mig at se være i
burgerinterfacet, hvor datoerne vælges? Og her skulle det være til at komme
omkring med asp's forskellige datofunktioner ('DatePart' og lignende).
Kim
| |
Rasmus Nielsen (13-07-2002)
| Kommentar Fra : Rasmus Nielsen |
Dato : 13-07-02 19:36 |
|
> Hvis problemet endelig skulle være dér, ville det for mig at se være i
> burgerinterfacet, hvor datoerne vælges? Og her skulle det være til at
komme
> omkring med asp's forskellige datofunktioner ('DatePart' og lignende).
Hvis man laver det på den måde du foreslår, er der vel ikke nogen egentlig
struktur på databasen? Hvordan skal man så indføje datoer? Kan du ikke komme
det lidt nærmere, hvad du mener...
På forhånd tak!
--
Venlig hilsen / Best regards,
Rasmus Nielsen.
| |
Jørn Andersen (13-07-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 13-07-02 20:16 |
|
On Sat, 13 Jul 2002 20:36:05 +0200, "Rasmus Nielsen"
<postmaster@rasmusn.dk> wrote:
>Hvis man laver det på den måde du foreslår, er der vel ikke nogen egentlig
>struktur på databasen? Hvordan skal man så indføje datoer? Kan du ikke komme
>det lidt nærmere, hvad du mener...
Det er rigtigt, at der ikke er en automatisk struktur i databasen - og
i den forstand er kalender-funktioner ikke sådan "bare lige" i ASP.
(ASP.NET skulle give nogle bedre muligheder, men det kender jeg
desværre ikke nok til ...)
Jeg lavede engang et vagtskema, hvor jeg i version 1 løste det på den
måde, at jeg havde et script som startede med at oprette "tomme"
vagter for en passende periode ud i fremtiden. Disse tomme vagter
kunne så bagefter belægges.
I version 2 blev de to funktioner slået sammen, således at når
månedens vagtplan blev lavet, så kunne denne standard-plan lægges ind
direkte. Når så folk ville bytte/dele vagter, så skete det ud fra
disse allerede oprettede vagter.
Humlen er i begge tilfælde, at strukturen ikke blev sikret ved hjælp
af databasens struktur, men gennem scriptningen - altså hvad man
tillader folk at gøre.
Desuden: I stedet for direkte at lade folk skrive dato-tid, opdelte
jeg dagen i 48 enheder á 1/2 time, som satte rammer for, hvilke tider,
der kunne vælges (dog stadig gemt som dato-tid i databasen af hensyn
til beregninger).
I dit tilfælde er dette måske unødvendigt, hvis du kun skal booke hele
dage?
Jeg ved ikke om dette hjalp en smule, ellers spørg videre.
Good luck.
--
Jørn Andersen,
Brønshøj
| |
Rasmus Nielsen (14-07-2002)
| Kommentar Fra : Rasmus Nielsen |
Dato : 14-07-02 05:15 |
|
> Jeg lavede engang et vagtskema, hvor jeg i version 1 løste det på den
> måde, at jeg havde et script som startede med at oprette "tomme"
> vagter for en passende periode ud i fremtiden. Disse tomme vagter
> kunne så bagefter belægges.
Der kan jeg begynde at se lys. Problemet er blot, at alle måneder jo ikke
har samme antal dage, så det bliver en masse manuelt arbejde, og så er der
jo også nærmest tidsbegrænsning på systemet. Man kan selvfølgelig bare lave
31 felter for hver måned, og så be ejeren udfylde at en lejlighed er optaget
i "Dag 1, måned 2, dag 2, måned 2 osv.", men det er jo ikke ligefrem smart
programmering. Man kan så heller ikke booke lørdag-lørdag uden manuelt at
udfylde datoerne.
Kan man mon med ASP fylde databasen op med det rette antal dage i hver
måned?
Findes der ikke en smartere løsning?
--
Venlig hilsen / Best regards,
Rasmus Nielsen.
| |
Niels (14-07-2002)
| Kommentar Fra : Niels |
Dato : 14-07-02 07:31 |
|
"Rasmus Nielsen" <postmaster@rasmusn.dk> skrev i en meddelelse
news:3d30fa5f$0$13956$edfadb0f@dspool01.news.tele.dk...
>
> Kan man mon med ASP fylde databasen op med det rette antal dage i hver
> måned?
>
> Findes der ikke en smartere løsning?
>
Den smarteste løsning er at man kun skriver når der bookes. Når du så laver
måneden i asp, så viser du så de dage der er booket. På den måde er der
minimalt data i databasen.
--
Niels Henriksen
bigtiger.dk - det vildeste webhotel
| |
Jørn Andersen (14-07-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 14-07-02 08:13 |
|
On Sun, 14 Jul 2002 06:14:33 +0200, "Rasmus Nielsen"
<postmaster@rasmusn.dk> wrote:
>> Jeg lavede engang et vagtskema, hvor jeg i version 1 løste det på den
>> måde, at jeg havde et script som startede med at oprette "tomme"
>> vagter for en passende periode ud i fremtiden. Disse tomme vagter
>> kunne så bagefter belægges.
>
>Der kan jeg begynde at se lys. Problemet er blot, at alle måneder jo ikke
>har samme antal dage, så det bliver en masse manuelt arbejde, og så er der
>jo også nærmest tidsbegrænsning på systemet. Man kan selvfølgelig bare lave
>31 felter for hver måned, og så be ejeren udfylde at en lejlighed er optaget
>i "Dag 1, måned 2, dag 2, måned 2 osv.", men det er jo ikke ligefrem smart
>programmering. Man kan så heller ikke booke lørdag-lørdag uden manuelt at
>udfylde datoerne.
Hvorfor kan du ikke bare lade dit script booke rigtige datoer? Altså
styre det via dit script.
Hvis der kun kan bookes hele dage er det jo ret enkelt:
1) Vælg en startdato og en slutdato (med en select-box eller hvad du
nu synes - kan laves på mange mere eller mindre smarte måder :)
2) Check at der er valgt gyldige datoer og at slutdato kommer efter
startdato
3) Check at de valgte datoer ikke er belagt
4) Lav en bekræft-side, der viser, hvad du har valgt.
5) Indsæt data i din booking-tabel (sørg for at dato-tid værdier
indsættes som dato-tid, og ikke på andre finurlige måder - det gør
beregninger langt lettere).
Når data skal vises (fx månedsvis), henter du data for måneden fra
tabellen, looper gennem månedens datoer og putter dem ind i fx en
tabel. Hvis der ikke er belægning på datoen laver du den fx grøn og
ellers rød (og med et link til detail-oplysninger).
Jeg har muligvis ledt dig på vildspor ved at snakke om mine "tomme
vagter" - det beklager jeg. Grunden til at jeg lavede det på den måde
var, at det så var ret enkelt at sikre mig, at alle vagter blev
belagt. Det behøver du (sikkert) ikke i dit tilfælde.
>Kan man mon med ASP fylde databasen op med det rette antal dage i hver
>måned?
Det kan du sagtens - hvis det altså er det du vil. Brug fx
DateAdd-funktionen til at "spole" en dag fram ad gangen.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Kim Bach Petersen (14-07-2002)
| Kommentar Fra : Kim Bach Petersen |
Dato : 14-07-02 10:53 |
|
> Hvis man laver det på den måde du foreslår, er der vel ikke nogen egentlig
> struktur på databasen? Hvordan skal man så indføje datoer? Kan du ikke
komme
> det lidt nærmere, hvad du mener...
Du behøver ingen struktur i databasen... - det eneste den behøver at holde
styr på, er hvilke dage bestemte lejligheder er reserverede.
Givet vi har to tabeller:
tBooking: BookingId (primærnøgle), Navn, Lejlighed
tKalender: DatoId (primærnøgle), BookingId (ref. tBooking), Dato
Når brugeren skal reservere oprettes for det første en post i tBooking, der
fortæller, hvem der booker hvilken lejlighed og dernæst en post i tKalender
for hver dag den pågældende booking omfatter. Det er alt, du behøver.
Databasen skal udelukkende holde styr på bookinger, ikke på, hvordan året er
skruet sammen.
Egentlig svarer det til, at du også kun skriver noget i din lommekalender,
når du skal noget. Eller mere præcist: Når du skal noget, skriver du hvad og
hvornår på en liste. Ved at have denne liste i en database, kan du let
sortere den, udvælge efter kriterier etc. Listen behøver derfor ikke at have
lommekalenderens struktur for at kunne give det fornødne overblik.
Da brugeren kikker i databasen via et asp-interface, er det i dette
interface kalenderstrukturen som sådan skal laves. Fra tKalender kan du let
hente alle datoer i en bestemt måned og derefter plotte dem ind i et skema,
som du måtte ønske det.
Asp har mange datofunktioner, som kan fortælle dig præcist hvordan ugenumre,
ugedage og så videre er knyttet sammen med datoer, så selve det
kalendertekniske kan let laves dér. (Og bruger du asp.net er det endnu
lettere med calendar-servercontrol'en.)
Kim
| |
|
|