Kalle_B: MySQL: Knifflige Gruppenabfrage

Beitrag lesen

Wie gesagt, ich sehe das Problem immer noch in redundanten bzw. nicht ausreichend normalisierten Tabellen.

Das wäre möglich.

Packen wir das Problem nochmal an der Wurzel:

  • Eine Person kann zu keiner, einer oder mehreren (N) Gruppen gehören, und umgekehrt (N:N Beziehung)

Nein. Eine Person kann zu keiner oder einer Gruppe gehören.

  • Eine Person kann zu "   "   " Gesprächen, und umgekehrt (N:N)

Ja, eine Person kann 0..n Gespräche haben und an einem Gespräch können 1..n Besucher und 1 Aussteller teilnehmen.

  • Eine Gruppe kann zu N Gesprächen, ein Gespräch kann aber nur von einer Gruppe besucht werden (N:1).

Hier steckt wohl das Problem. Ein Gespräch kann von einer Gruppe besucht werden _oder_ von einer Person, die der Gruppe 0 (= keine Gruppe) angehört. Ich hätte es einfacher, wenn auch dafür eine Gruppe vorhanden wäre.

Daraus ergeben sich folgende Tabellen:

  • Personen 1)
  • Gruppen 2)
  • Gespräche (oder wie du es nennst) 3)
  • Personen_Gruppen 4)
  • Personen_Gespräche 5)

Damit werden auch die Abfragen um einiges einfacher.

  1. habe ich
  2. habe ich, aber ohne die Einzelbesucher
  3. die Zeiteinheiten werden "slot" genannt, eine Person kann 0..n slots haben (0 nur vor der Eingabe, macht keinen Sinn)
  4. habe ich
  5. das sind die Kontakte, die zunächst als Wunsch existieren und durch Eintrag eines Slots zum Termin werden.

Gruß, Kalle