php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.09.2011, 13:54  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard Datenbankaufbau Raumreservierung

Moin,

ich überlege mir gerade wie eine Datenbank für ein Raumreservierungs-System aussehen könnte / sollte.

Es soll die Möglichkeit geben Sperrzeiträume sowie Sperrtage festzulegen geben, diese gelten für alle Räume.
Die Reservierungen erfolgen immer für 1 Stunde.
Außerdem soll esmöglich sein, wiederkehrende Reservierungen anzulegen.

Ich habe bisher folgende Ideen:

TABLE rooms:
+----+--------+
| id | name |
+----+--------+
| 1 | raum 1 |
| 2 | raum 2 |
| 3 | raum 3 |
+----+--------+

TABLE reservierungen:
+----+---------+------+------------+--------+--------------+-----------+
| id | user | raum | datum | stunde | wiederholung | wochentag |
+----+---------+------+------------+--------+--------------+-----------+
| 1 | frank | 2 | 10.10.2011 | 1 | 0 | 0 |
| 2 | steffan | 2 | 10.10.2011 | 2 | 0 | 0 |
| 3 | frank | 1 | 0 | 5 | 1 | 3 |
+----+---------+------+------------+--------+--------------+-----------+


TABLE sperrtage:
+----+------------+------------+
| id | von | bis |
+----+------------+------------+
| 1 | 03.10.2011 | 06.10.2011 |
| 2 | 01.11.2011 | 01.11.2011 |
+----+------------+------------+

Wochtentag wird nur bei Wiederholungen gesetzt, in diesem Fall wird kein Datum gesetzt.

Man könnte Wiederholungen auch in eine seperate Tabelle packen oder sperrtage auch in eine...
Oder man könnte für jeden Raum ne eigene Tabelle machen.

Wie machts der Profi?
Zulakis ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.09.2011, 16:25  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Also ich würde auf jeden Fall die Wiederholungen und auch die User jeweils in eine seperate Tabelle packen.

Zitat:
[...]oder sperrtage auch in eine...
auf jeden Fall, aber das hast Du ja schon.

Zitat:
Oder man könnte für jeden Raum ne eigene Tabelle machen.
Nö, das ist nicht sinnvoll...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 30.09.2011, 16:37  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Arne Drews Beitrag anzeigen
Also ich würde auf jeden Fall die Wiederholungen und auch die User jeweils in eine seperate Tabelle packen.

auf jeden Fall, aber das hast Du ja schon.

Die User existieren eh (in anderer Tabelle)

Zitat:
[...]oder sperrtage auch in eine...
sorry, meinte wiederholungen.
Zulakis ist offline   Mit Zitat antworten
Alt 30.09.2011, 16:40  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Die User existieren eh (in anderer Tabelle)
Dann solltest Du anstatt deren Namen die ID verwenden in der Tabelle "Reservierungen".
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 30.09.2011, 16:44  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Arne Drews Beitrag anzeigen
Dann solltest Du anstatt deren Namen die ID verwenden in der Tabelle "Reservierungen".
So läuft es normalerweise auch
Ich wollte nur nicht noch ne zusätzliche Tabelle basteln müssen.
Zulakis ist offline   Mit Zitat antworten
Alt 30.09.2011, 16:46  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ja gut... Halbwahre Tabellenstrukturen zu präsentieren und dann die Frage stellen, was kann man besser machen ist nicht wirklich sinnvoll...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 30.09.2011, 16:49  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard

Mir geht es nur um den Datenbankaufbau der Reservierungen. Der Rest wurde bewusst weg gelassen.

Gibt es noch irgendeine andere sinnvolle Lösung oder ist das von mir gezeigte schon der way-to-go eines Profis?
Zulakis ist offline   Mit Zitat antworten
Alt 30.09.2011, 19:28  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Wenn dann die ganze Aufgabe nur darin besteht, eine Anzahl Räume zu vergeben, brauchst Du 3 Tabellen. Dabei ist vorausgesetzt, daß 1 Raum für 1 Zeitraum immer genau 1 oder keiner Person zugeordnet wird.
1) Tabelle Personen
2) Tabelle Räume
3) Zuordnungstabelle Raum-Person-Zeitraum
"Personen" und "Räume" dürfte klar sein, in der Zuordnungstabelle mußt Du haben:
Raum-Id | Person-Id | belegt_von | belegt_bis
Es gibt keinen Grund, Datum und Uhrzeit in der Tabelle zu trennen, im Gegenteil würde das die Abfrage unnötig kompliziert machen.
Diese Sperrzeiten sind so eine Sache: man könnte eine Dummy-Person anlegen, das ist aber unsauber weil das eine "Magic-number" wäre.
Sauber wäre eine weitere Spalte "gesperrt ja-nein".
Wenn ich mehr über die Gesamtaufgabe wüßte, wäre vielleicht eine elegantere Lösung möglich.
achtelpetit ist offline   Mit Zitat antworten
Alt 30.09.2011, 21:24  
Erfahrener Benutzer
 
Registriert seit: 21.09.2010
Beiträge: 143
PHP-Kenntnisse:
Anfänger
Zulakis befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von achtelpetit Beitrag anzeigen
Wenn dann die ganze Aufgabe nur darin besteht, eine Anzahl Räume zu vergeben, brauchst Du 3 Tabellen. Dabei ist vorausgesetzt, daß 1 Raum für 1 Zeitraum immer genau 1 oder keiner Person zugeordnet wird.
1) Tabelle Personen
2) Tabelle Räume
3) Zuordnungstabelle Raum-Person-Zeitraum
"Personen" und "Räume" dürfte klar sein, in der Zuordnungstabelle mußt Du haben:
Raum-Id | Person-Id | belegt_von | belegt_bis
Es gibt keinen Grund, Datum und Uhrzeit in der Tabelle zu trennen, im Gegenteil würde das die Abfrage unnötig kompliziert machen.
Diese Sperrzeiten sind so eine Sache: man könnte eine Dummy-Person anlegen, das ist aber unsauber weil das eine "Magic-number" wäre.
Sauber wäre eine weitere Spalte "gesperrt ja-nein".
Wenn ich mehr über die Gesamtaufgabe wüßte, wäre vielleicht eine elegantere Lösung möglich.
Datum und Stunde habe ich wegen den Wiederholungen getrennt, wie würdest du das machen?

Die Gesamtsituation ist folgende:
Es gibt eine bestehende Nutzerverwaltung mit LDAP, nun soll dadran noch eine Raumverwaltung angeschlossen werden. (Mit SQL - oder macht das mit LDAP Sinn?)
Es gibt bestimmte Räume in denen wöchtenlich wiederkehrender Regelunterricht statt findet. Außerhalb des Regelunterrichtes soll es die Möglichkeit geben die Räume zu reservieren. Es soll die Möglichkeit geben Ferienzeiten in denen kein Regelunterricht stattfindet und auch nichts anderes stattfinden kann. Außerdem soll es die Möglichkeit geben Projekttage / Wochen einzugeben in denen kein Regelunterricht stattfindet und deshalb alle Stunden reserviert werden können.
Zulakis ist offline   Mit Zitat antworten
Alt 30.09.2011, 21:42  
Erfahrener Benutzer
 
Registriert seit: 01.06.2011
Beiträge: 389
PHP-Kenntnisse:
Anfänger
achtelpetit befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
oder macht das mit LDAP Sinn?
Das kann ich nicht sagen, ich versteh' nix von LDAP.

Zitat:
Datum und Stunde habe ich wegen den Wiederholungen getrennt, wie würdest du das machen?
Wie ich schon sagte, immer einen kompletten Zeitstempel, kostet doch nix.
Wiederholungen lassen sich doch programmatorisch eintragen, das muß man doch nicht zu Fuß machen: jeden Donnerstag von 9.00 bis 10.00 innerhalb des Zeitraums 7. 1. 2011 bis 23.12.2011. Diese Aktualisierungsabfrage ist doch in Nullkomma Sekunden durchgelaufen.
Eine Kalendertabelle könnte sinnvoll sein, ergänzend zu den schon genannten Tabellen. Ostern und Weihnachten kann man noch programmatorisch bestimmen, die Schulferien nicht.
achtelpetit ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hilfe bei einem Datenbankaufbau maclaim1988 Datenbanken 7 05.01.2010 13:32
[Erledigt] logischer datenbankaufbau mit user/produkten neimles Datenbanken 4 04.09.2009 09:29
Datenbankaufbau und Eintrag? 22hase Datenbanken 5 04.01.2009 15:18
Ich brauche Hilfe beim Logischen Datenbankaufbau faragerri Datenbanken 6 17.07.2006 20:17
Datenbankaufbau einer PW Tabelle mit nur 1 PW Datenbanken 1 09.03.2006 10:43
Prinzipielle Frage zum Datenbankaufbau (Anfänger) obi Datenbanken 4 03.08.2004 15:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
raumreservierung php, datenbank reservierung, raumverwaltung free, platzreservierung datenbank, raumbuchungssystem php, raumbuchung php, php raumreservierung, datenbank raum verwaltung, raumverwaltung datenbank, datenbank kinoreservierung, online raumbuchungssystem php, datenbanken reservierungsanfrage, tabelle reservierungen, datenbankaufbau tutorial, php raumbuchungssystem, skript php tabelle buchungssytem, raumverwaltung datenbank erstellen, raumreservierung mr, online php raumbuchungssystem, php raumbuchung

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum