Jag har 3 tabeller i min access databas. Det rimligaste vore väl att skapa en ny tabell "stugor". Sen lägger du in alla stugor du vill ha där. Så hade jag det innan men det var tvungen att ändras pga kunds önskemål. Då skulle jag helt enkelt ha en tabell reservationer på det sättet du har: Ok, jag gjorde och testade en funktion som kollar antalet bokning för det datumet och det id:t och returnerar true eller false om det går att boka eller ej. I denna funktionen räknar jag bokningarna för det speciella datum. Överstiger inte bokningarna antalet stugor så går det att boka.Lägga in ny kolumn i db för att kontrollera antal
Stugtyper
Priser
Reservationer
Stugtyper
StugID
stugtypnamn
beskrivning
...
Priser
prisID
stugID
datum_från
datum_till
pris
...
Reservationer
ResID
Kontaktperson
StugID
...
------------------------
Applikationen är ett bokningssystem med stugor.
När jag bokar en stugtyp väljer jag stugtyp, datum och bokar.
Stugtyp innebär en grupp av stugor som har ett namn t.ex Hushållsstugor har kanske 11 st stugor som tillhör denna typen.
Problemet eller frågetecknet är:
Som jag har det nu så väljer jag en stugtyp (t.ex hushållsstugor) och bokar ett visst datum och då går det inte att boka den stugtypen på det datumet igen.
Hushållsstugor har 11 st stugor inom sig och då ska det vara möjligt att boka stugtypen Hushållsstugor ett visst datum 11 gånger sen efter det går det inte att boka stugtypen för det datumet.
Fråga: I min tabell Stugtyper har jag lagt in en kolumn "Antal"
Ex. Hushållsstugor 11 st
Ska jag i tabellen Reservationer lägga in en kolumn "Antal" där håller reda på antalet eller ska jag skapa en ny tabell och binda ihop Stugtyper.Antal och antal reservationer ett visst datum?
Om en person bokar Hushållsstugor t.ex 2006-10-10 till 2006-10-17 så räknas ju antalet 11-1 = 10 st stugor lediga inom Hushållsstugor (ej i tabellen Stugtyper.Antal för det antalet 11 är ju alltid samma)
Då kan nästa person boka Hushållsstugor t.ex 2006-10-10 till 2006-10-17 och så räknas antalet ner ytterligare 10-1 = 9 st lediga stugor inom gruppen HushållsstugorSv: Lägga in ny kolumn i db för att kontrollera antal
Sv:Lägga in ny kolumn i db för att kontrollera antal
Vilken stuga som är bokade ska ej specificeras - utan den som bokar väljer stugtyp t.ex självhushållsstugor och fyller i ett datum den vill boka. Då är det upp till administrationen sen att delegera ut vilken stuga inom gruppen självhushållsstugor som passar det datumet (alltså inget som skall hanteras i systemet).
T.ex för att göra ett exempel på grupp
hotell SAND med 200 rum
hotell GATA med 400 rum
Det behövs inte skrivas in alla 200 rummen - utan när jag vill boka väljer jag hotell SAND och vilket datum jag vill boka. Därefter är det upp till administrationen att delegera ut ett rum till mig som är ledigt det datumet.
Så alltså när jag bokar hushållsstugor och fyller i ett datum så syns aldrig stugorna under.
Antalet räknas bara upp (eller ner med utgång från 11 st) om 1 person bokar på samma datum som en annan person bokat. Sv: Lägga in ny kolumn i db för att kontrollera antal
Reservationer
ResID
StugID
Datum
Stugtyper
StugID
Antalplatser
Och sen ha någon typ av kontroll (en assert eller check, eller trigger, eller helt enkelt koll i koden) på:
SELECT COUNT(*) FROM Reservationer WHERE Datum = dittdatum AND StugID = dittid
I en assert-form skulle det väl se ut som något i stil med (kommer inte ihåg syntaxen för asserts, och många databaser skiter ju ändå i att implementera det):
CREATE ASSERTION CHECK (Antalplatser >= bokade) FROM (SELECT Antalplatser, bokade FROM Stugor NATURAL JOIN (SELECT StugID, COUNT(ResID) AS bokade FROM Reservationer GROUP BY (StugID, datum))Sv:Lägga in ny kolumn i db för att kontrollera antal
Tack för hjälpen =)