webForumDet fria alternativet

Vilket belastar databasen mest

ASP

2 svar · 278 visningar · startad av Bjarne A

Medlem sedan feb. 2001151 inlägg
Frågan#1

Om jag har en Access databas med kolumn för årtalet, månaden, och 31 för dagar

I den skall man kolla om en gästlägenhet är ledig och kunna boka den

1. I den kan man då antingen fylla i 5 år X 12 månader med tomma celler dvs 60 rader och när man hämtar en månad så ber man servern hämta dag 1 där året är x och månad x osv

Om den är tom visa kod för att kunna boka, om det finns text visa kod "bokad"

2. Eller så har man en tom databas med samma kolumer och ber servern att kolla om dag 1 där året är x och månaden är x.

Om den inte finns visa kod för att kunna boka, om det finns text visa kod "bokad"

Lägenheten blir kanske bokad 10 dagar i månaden i genomsnitt
Man får ju en större databas i modell 1 men den kan ju gå direkt och behöver inte kolla igenom den om och om igen.

Denna hemsidan kommer ju inte att känna av belastningen vilket alternativ jag än gör men om man någon gång gör en STOR och tung sida så. Man vill ju lära sig nått nytt

Medlem sedan dec. 20003 887 inlägg
#2

Eller så har du en tabell med två kolumner: en för bokningens start och en för antingen bokningens längd eller en för bokningens slutdatum.
Sedan kan du ju utöka kolumnerna med exempelvis en kolumn med id på den som bokade, id på stugan som är bokad och så vidare.

Jag föreslår att du läser igenom innehållet på följande länk: http://www.databasteknik.se/webbkursen/

Medlem sedan dec. 20003 563 inlägg
#3

Bra att du tänker efter men tyvärr är båda alternativen rätt förkastliga i mening av databasdesign. Ditt problem ska endast behöva en kolumn för startdatum av uthyrningen, hur länge den ska hyras ut samt vilken lägenhet det handlar om.

table apartment
apartmentNr | startDate | duration

En egen tabell som innehåller information om varje lägenhet är då enkel att koppla till resp. apartmentNr i en separat tabell.

Vill du hyra ut en lägenhet i 25 dagar med start idag skriver du en ny rad/post

13 | 2005-04-07 | 25

Vill du kontrollera ifall lägenheten är uthyrd idag använder du dig bara av startdatum samt uthyrningslängden.

select startDate, dateadd('d', startDate,duration) as endDate 
from apartment 
where startDate <= today() 
and endDate >= today()

Du kan lika gärna sätta in endDate i databasen på en gång istället för duration ifall du vill.

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)