Kalle_: Datenbank-Design

Beitrag lesen

Hallöle,

ich glaube, ich habe einen falschen Ansatz, weil die Pflege der Daten so aufwendig ist. Es muss doch einfacher gehen, aber ich komme nicht drauf.

Der Fall:
---------
An einer Fachmesse nehmen 60 Aussteller und 400 Besucher teil, allesamt vorher angemeldet. PHP soll Gesprächstermine machen.

Jeder Aussteller kann ankreuzen, mit welchem Besucher er sprechen möchte und jeder Besucher, mit welchem Aussteller. Theoretisch wären das 400x60 = 24.000 Paarungen, in der Praxis tatsächlich 6.000.

Die Besucher können Priorität 1 und 2 vergeben, die Aussteller Priorität 3.

Pro Paarung richte ich einen Datensatz ein als Arbeitsvorrat für das Terminierungsprogramm.

Und um die Pflege geht es: Besucher B1 wünschte Aussteller A1 zu sprechen, ein Datensatz wurde angelegt:

B1-A1: pr1=1 pr2=0 pr3=0

Nun möchte auch Aussteller A1 Besucher B1 sprechen. KLar, der Satz muss ergänzt werden: pr3=1

Jetzt mache ich einen INSERT, um den Satz anzulegen. Ist schon da, also Fehler und nächster Zugriff: UPDATE.

Version 2: Ich frage, Satz vorhanden? und mache dann gezielt ein UPDATE oder INSERT. Das sind AUF JEDEN Fall 2 Zugriffe, Version 1 kommt oft mit EINEM Zugriff aus.

So weit, so gut. Nun können aber auch Wünsche zurückgenommen werden, indem der Haken (checkbox) aus der Liste entfernt wird. Wie hier bereits diskutiert, gibt es per <form> keine DIREKTE Möglichkeit, einen weggenommenen Haken zu erkennen.

Ich muss also sämtliche Sätze des ändernden Ausstellers mit den verbliebenen Haken vergleichen und fehlende Haken in die Änderung von prio_3=0 umsetzen. Wenn dann auch prio_1=0 UND prio_2=0 muss der Satz tatsächlich gelöscht werden.

Zugriffe über Zugriffe auf die Datenbank, und die Programmierung sehr aufwendig und damit fehlerträchtig.

Wie gesagt, der Lösungsansatz ist wohl nicht optimal. Wäre für eine Idee oder kluge Frage dankbar, bin sicher etwas betriebsblind.

LG Kalle