webForumDet fria alternativet

Bokningskalender funktion i databas SQL Server 2005

1 svar · 836 visningar · startad av hannadernbrant

hannadernbrantMedlem sedan apr. 20101 inlägg
#1

Hej,
håller på att utveckla ett webbokningssystem i vb.net och med SQL Server 2005 som DBMS för ett skolprojekt. Det som jag har problem med är hur jag ska få kalendern att fungera. Beskriver här nedanför vilka delar vi har i de tabeller som är involverade i problemsituationen.

Databasstruktur:
Bokning
-BokningsID (int, primärnyckel för tabellen, ökar med ett för varje bokning som görs)
-KundID (int, främmande nyckel från tabell Kund)
-BokningsDatum (datetime)

Kund
-KundID (int, primärnyckel för tabellen, ökar med ett för varje kund som görs)
-TlfNr (nchar, 15)
- Adress (nvarchar, 50)
- Postnr (nchar, 6, främmande nyckel från tabell Postadress)

Privatkund
-KundID (int, generalisering av tabell Kund)
- fNamn (nvarchar, 50)
- eNamn (nvarchar, 50)

Företagskund
-KundID (int, generalisering av tabell Kund)
-ftgNamn

Postadress
- Postnr (nchar, 6, primärnyckel för tabellen)
-Ort (nvarchar, 25)
-vNamn (nvarchar, 30, främmande nyckel från tabellen Verkstad)

Verkstad
-vNamn (nvarchar, 30, primärnyckel för tabellen)
-Adress (nvarchar, 50)
-Postnr (nchar, 6)

När en ny bokning skapas gör man först en ny kund om kunden inte redan existerar, när man skriver in postnummer hämtas automatiskt ort och verkstadsuppgifter för den verkstad som är ansvariga för postnumret. Därefter ska systemet kolla mot databasen när det finns lediga tider för den verkstaden. Varje verkstad har ett visst antal tider per dag; 9.00, 11.30, 13.00, 15.30, 17.00. Direkt efter att verkstad laddats vill jag att sql kod ska kolla alla lediga tider för aktuell månad. Den ska även visa de tre närmsta lediga tider för verkstaden.

Vet inte var jag ska börja med SQL koden, är ganska ny på SQL kod och vår lärare verkar inte kunna detta då han ständigt byter samtalsämne när man nämner detta :l. Utifrån mina kunskaper inom programmering och databaser så borde detta vara möjligt, jag vet bara inte var jag ska börja.

Tack på förhand,
Hanna

rhdfMedlem sedan okt. 2007446 inlägg
#2

Jag antar att det är delen där du hämtar ut lediga tider för verkstaden som du kört fast på.
men först av allt så tycker jag du överkomplicerat databasen lite
tabellerna Kund, Privatkund och Företagskund kan ju slås samman till en tabell. För att skilja företag mot privatpersoner så kan du ju ha ett "bit-fält". (Det blir dessutom lättare att söka efter befintliga kunder om man slipper leta i 2 tabeller)

Det du sen skall leta fram är ju upptagna tider,
Du har ju nu letat fram vilken verkstads bokningar som man skall hitta så måste du följdaktligen även lägga in vilken verkstad som en bokning hör till

tabellen Bokning måste alltså ha fälten:

-BokningsID (int, primärnyckel för tabellen, ökar med ett för varje bokning som görs)
-KundID (int, främmande nyckel från tabell Kund)
-BokningsDatum (datetime)
VerkstadsID( int, främmande nyckel från tabell Verkstad)
(detta betyder att du BÖR ha ett en int som primärnyckel i den tabellen istället för verkstadsnamnet)

Sen får du stoppa in dessa bokningar i en lista/array och göra en koll om det datumet finns med när du skriver ut din kalender

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)