2 Prozeduren

boez19

Benutzer
Beiträge
6
Hallo liebe Community!
ich arbeite zurzeit an einem Projekt für die Uni.
Ich brauche zwei Prozeduren, leider fallen mir keine sinnvollen Prozeduren ein.
Vielleicht habt Ihr paar Beispiele für Prozeduren die ich programmieren könnte.
Die Tabellen, die vorhanden sind habe ich als Bild hochgeladen.

Im Grunde geht es um Buchungen von Räumen, die für Seminare oder andere Veranstaltungen genutzt werden können.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    61 KB · Aufrufe: 6
Werbung:
Nun, Du könntest ja in der DB eine Prüfung bauen, daß kein Raum doppelt gebucht ist. MySQL kann ja keine Exclusion Constraints, die das bereits im Tabellendesign verhinder könnten, wie folgendes Beispiel zeigt:

Code:
test=# create table buchungen(raum text, von_bis tsrange, exclude using gist(raum with =, von_bis with &&));
CREATE TABLE
test=*#
test=*#
test=*# insert into buchungen values ('saal 1', '[2016-06-03 10:00:00,2016-06-03 12:00:00)');
INSERT 0 1
test=*# insert into buchungen values ('saal 2', '[2016-06-03 10:00:00,2016-06-03 12:00:00)');
INSERT 0 1
test=*# insert into buchungen values ('saal 2', '[2016-06-03 11:00:00,2016-06-03 13:00:00)');
ERROR:  conflicting key value violates exclusion constraint "buchungen_raum_von_bis_excl"
DETAIL:  Key (raum, von_bis)=(saal 2, ["2016-06-03 11:00:00","2016-06-03 13:00:00")) conflicts with existing key (raum, von_bis)=(saal 2, ["2016-06-03 10:00:00","2016-06-03 12:00:00")).
test=*#


Da kannste bestimmt ganz groß rauskommen ...
 
Werbung:
ich gebe zu: das war nicht ganz ernst gemeint. Das in MySQL abzubilden, und zwar so, daß es auch noch schnell ist, wird schwer bis unmöglich. PG nutzt dazu einen GiST-Index, damit kann man räumliche Daten indizieren - eine RANGE wird quasi als 2-dimensionales Objekt betrachtet. Darauf kann man dann solch einen räumlichen Index setzen und z.B. prüfen, ob sich 2 Objekte (räumlich) überlappen/überschneiden.

exclude using gist(raum with =, von_bis with &&) , das && ist der Überlappungsoperator.

MySQL ist von solchen Technologien noch ein paar Lichtjahre weit entfernt ...
 
Zurück
Oben