Friedel: Anfängerfrage zu Datenbanken

Beitrag lesen

Hallo,

ich bastle gerade eine Site, in der Mitfahrgelegenheiten zu Events organisiert werden sollen. Das ganze basiert auf Php und einer Datenbank.

Die Besucher können sich registrieren und registrierte User können sich einloggen. Dazu gibt es in der Datenbank die Tabelle "user". Bestimmte User haben das Sonderrecht, Events eintragen zu dürfen. Von den Events werden Anfangsdatum, Dauer (in Tagen), Ort, Titel, Längengrad, Breitengrad, Beschreibungstext und einige weitere Details in der Tabelle "events" gespeichert. Diese Events werden dann in einem Kalender oder auf einer Landkarte angezeigt. (Danke an Matthias Scharwies an dieser Stelle für seinen Einstieg in Leaflet.) Wenn ein User so ein Event anklickt, soll er eine Seite zu diesem Event angezeigt bekommen und ein Formular, in dem er Mitfahrgelegenheiten von einem Ort seiner Wahl zu diesem Event und/oder zurück anbieten oder suchen kann. Er kann dabei festlegen, ob seine Eintragung für alle sichtbar sein soll, nur für eingeloggte User, nur für User die auch zu diesem Event Mfg anbieten oder suchen. Seine Eintragung soll mit den Koordinaten seine Start-/Zielortes auch auf der Karte angezeigt werden.

Als SQL-Neuling habe ich zwar einige Ideen, wie ich das umsetzen kann, mir fällt aber schwer zu beurteilen, welche Möglichkeiten besser als andere sind.

  • Ich könnte für jedes Event eine Tabelle in der Datenbank erzeugen, in der die Mfg gespeichert werden. Das werden mit der Zeit dann viele, viele Tabellen und für die Darstellung der Seiten muss Php für jede Seite auf 3 Tabellen zugreifen. Diese 3 Tabellen wären einigermaßen übersichtlich, die Gesamtzahl der Tabellen würde aber immer größer werden.
  • Ich könnte auch in der Tabelle "users" für jedes Event je eine Spalte für die Schlüsselnummer der Events, Hinfahrtermin, Rückfahrtermin, Breitengrad, Längengrad, Anzahl der gesuchten Plätze, Anzahl der angebotenen Plätze usw anlegen. Die Zahl der Tabellen wäre also konstant bei 2, aber die Tabelle "users" würde sehr schnell wachsen und immer größer werden.
  • Natürlich könnte man das entsprechend auch in der Tabelle "events" organisieren. Dort müsste dann natürlich für jeden User, der zu diesem Event will, die Schlüsselnummer des Users, Hinfahrtermin, Rückfahrtermin, Breitengrad, Längengrad, Anzahl der gesuchten Plätze, Anzahl der angebotenen Plätze usw gespeichert werden.

Ich tendiere sehr stark zur ersten Lösung, hauptsächlich weil die Tabellen dann relativ überschaubar bleiben. Aber ob das wirklich die Lösung ist, die die Datenbank und den Server am wenigsten belastet, kann ich nicht beurteilen. Dazu fehlt mir die Erfahrung und das Hintergrundwissen.

Vielleicht gibt es auch noch ganz andere Möglichkeiten, die viel besser sind. Ich bitte um Ratschläge.

akzeptierte Antworten