---
title: "db-arkitektur bakom bokningsfunktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/164145-db-arkitektur-bakom-bokningsfunktion"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "inspiro"
published: "2007-09-04T08:59:37.000Z"
updated: "2007-09-05T12:42:03.000Z"
replies: 4
views: 582
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/164145-db-arkitektur-bakom-bokningsfunktion"
---

# db-arkitektur bakom bokningsfunktion

## #1 — inspiro, 2007-09-04T08:59Z

Hej! Sitter här och försöker bygga en liten bokningssnurra till en konferens. Så här ska det fungera:

Det finns 10 mötestillfällen under dagen och ca 20 olika bord att sitta vid. Systemet visar en lista där besökaren väljer vilket eller vilka företag han eller hon vill träffa. Systemet ska därefter automatiskt sätta ihop besökare och företag med varandra, tilldela dem en tid och ett bord.

Så här ser min design ut för närvarande:

Users
\---------------
UserID
UserName
Email

Companies
\---------------
CompanyID
Representant

MeetingTables (alla bord och deras respektive tider)
\-------------------------------------
MeetingTableID
TableNumber
TimeForMeeting

Meetings (tabellen som ska sätta ihop allt)
\-------------------------------------
MeetingID
MeetingTableID
UserID
CompanyID

Men jag får inte till den viktigaste frågan... jag försöker få fram för varje användare vilka företag, tider och bord som är lediga...

Permalänk: https://www.webforum.nu/p/164145

## #2 — CatZ, 2007-09-04T11:18Z

du bör ju gruppera på datum och sparar ett datum i meetingtime. Då kan du ju hämta alla poster som inte har någon meetingtime

Permalänk: https://www.webforum.nu/p/2022436

## #3 — inspiro, 2007-09-04T17:33Z

Har gjort om den lite nu (har ändrat i det urspungliga inlägget). En mer konkret fråga:

Om jag har en tabell med registrerade tider på det här sättet:

```
Tabell 1

id tid
1  13:00
1  14:00
2  13:00
2  15:00  
3  14:00
```

...och så har jag en tabell med möjliga tider:

```
Tabell 2

id tid
1  13:00
2  14:00
3  15:00
```

...så skulle jag utifrån detta vilja få fram vilka tider som \_inte\_ är använda för respektive ID i tabell 1. Vill alltså få fram följande:

```
id  ledig
1  15:00
2  14:00
3  13:00
3  15:00
```

Får inte ihop det, blir lixom bakvänt på något vis. Tänker jag helt galet?

Permalänk: https://www.webforum.nu/p/2022503

## #4 — CatZ, 2007-09-05T07:48Z

En bordstabell och en tidstabell sedan knyter du samman det i en bokningstabell.

Bokningstabellen ser ut som:

```
bokID	bordsID		tidsID
1		1			3

Select * from tblTid where tidsId not in
	(select tidsID from tblBokningar where tblBokningar.tidsID = tblTid.tidsID) 
and not in
	(select bordsID from tblBokningar where tblBokningar.bordsID = tblTid.bordsID)
```

Tyvärr är jag inte LarsG min kod kommer nog inte fungera men det du ska göra är i alla fall att hämta posterna där inte bords och tidsID finns. Jag klarar inte sånt här i huvudet tyvärr, måste sitta hemma och pula i visual studio för att få det å fungera men förstår du vartåt jag vill komma?

Permalänk: https://www.webforum.nu/p/2022644

## #5 — CatZ, 2007-09-05T12:42Z

Det blir väl lite enklare ändå. Har följande förslag till dig. Tror att det kan fungera:

```
tblBokat (Bokade tider)

id	tidsid
1	1		
2	3		
3	5	

tblTider (Möjliga tider)

id	tid		bordsid
1	13:00	1
2	14:00	1
3	15:00	1

tblBord	(bokningsbara bord)

id	titel
1	konferensbord 1

select 
	tblBord.titel, tblTider.Tid
from
	tblBord
	inner join tblTider on tblTider.bordsid = tblBord.id
	inner join tblBokat on tblBokat.bordsid = tblBord.id
where (tblBokat.tidsid <> tblTider.id)
```

Permalänk: https://www.webforum.nu/p/2022748

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/164145-db-arkitektur-bakom-bokningsfunktion
