Kategorien selbst erstellen in Mysql

Alex236

Grünschnabel
Guten Tag,

ich bin erst seit kurzem hier und hoffe, dass ihr mir weiterhelfen könnt.

Ich schreibe -freiwillig- für ein Seminar eine Seite, die folgende Dinge macht:

Es gibt Marker auf einer Google Maps Karte, diese zeigen bei Klick einen Steckbrief an. In diesem Steckbrief befinden sich jeweils Kategorien mit entsprechenden Unterkategorien.

z.B.:

Räumliche Lage (Kategorie)
-Skizze
-Straßennamen
-Einbindung in die Umgebung

Zur Zeit funktioniert das ganze zwar, allerdings nur dahin gefrimmelt, sprich ich weiß, wie die Kategorien in der Mysql Datenbank heißen und geb sie der Reihe nach in PHP wieder aus, allerdings immer manuell ($row->skizze <br> $row->strasse).

Mein Anliegen wäre es nun, dass man Kategorien selbst anlegen kann über ein kleines Formular und dass diese Kategorien später automatisch mit der richtigen Beschriftung ausgegeben werden.
Möglicherweise habe ich einen Denkfehler drin, denn zur Zeit handle ich das ganze so, dass der Steckbrief eine ID hat und die entsprechenden Spalten den Namen der Unterkategorien (die Überkategorien werden ebenfalls manuell in html geschrieben). Und das Problem besteht darin, dass die Spalten nicht die gleiche Beschriftung haben, wie die spätere Ausgabe (z.B. "Einbindung in die Umgebung" heißt dann in der Spalte "umgebung"). Das kann ja in soweit schon nicht richtig sein, als dass man nicht beliebig viele neue Kategorien/Unterkategorien erstellen könnte.
Habe mich bisher schon versucht mit JOIN durchzuarbeiten und die typischen Beispiele mit "Father, Mother, Son" "Orange, Lemon" etc, aber ich komme nicht auf den Geistesblitz, Kategorien anzulegen, die eine eigene Beschriftung haben, weil es halt zu jedem Steckbrief mehrere Kategorien gibt.

Könnt ihr mir helfen?
LG
 
Zuletzt bearbeitet:
Versteh ich das Richtig, du willst zusäzuliche Felder anhängen können (also so Dinger wie Skizze, Strassennamen etc)?
 
Genau.
Das ist noch im Ermessen dessen, was ich auf die Reihe kriege :)
Allerdings soll diesen Kategorien dann aber auch ne ordentliche Beschriftung zugewiesen werden und ihnen müsste dann zusätzlich noch ein Inhalt verpassbar sein.
Der Steckbrief eines Ortes sähe dann so aus und es würden weitere Spalten hinzufügbar sein.

Tabelle Ort
Id Koordinaten Bearbeiter Skizze
1 5.654,23.22 Ich, Du skizzen/test.jpg
 
Wie wäre es mit einer extra Tabelle:

Id OrtId attribute value


OrtId ist der Fremdschlüssel der mehrfach vorkommen kann.
attribute der Atributname (Name des Feldes) und value der Wert.
Mit einer SQL Abfrage kannst du dir zu jeder OrtId dann alle Atribute holen.


EDIT:
Code:
Tabelle Ort:
id koordinaten name
1 0.000 Nordpol

Tabelle: Eigenschaften:
id ortId eigenschaft wert
0 1 Bearbeiter  Ich
 
Zuletzt bearbeitet:
Du musst die Tabellenstruktur anpassen

Code:
T_FELDER
ID | BEZEICHNUNG    | FELDTYPE
1  | "Koordinaten"  | VARCHAR
2  | "Skizze"       | INT
3  | "Berabeiter"   | VARCHAR

T_ORT
ID | BEZEICHNUNG
1  | Ort 1
2  | Ort 2

T_ORT_FELDER
ID | ORT_ID | FELD_ID | WERT        
1  | 1      | 1       | "1567:456"   
2  | 1      | 2       | 42
3  | 1      | 3       | "Thomas"
4  | 2      | 1       | "1567:456"
5  | 2      | 2       | 23
6  | 1      | 3       | "Markus"

In T_FELDER hast du die Definition der Felder. Diese Tabelle kannst du über Formulare erweiterbar machen
FELDTYPE brauchst du ev. als Info für die Ausgabe und ggf. Konvertierung

In T_ORT_FELDER sind die Werte der Orte zu den Feldern hinterlegt. Alle Werte werden als VARCHAR gespeichert. Wenn du mit den Werten weiterarbeiten musst, kannst du diese mit dem T_FELDER.FELDTYPE in PGP umwandeln.
 
So simpel und doch so fern. ^^
Vor allem ärgert es mich, dass es diesen typischen JOIN Beispielen so nahe kommt, aber ich den entscheidenen Unterschied dann nicht herausbekommen habe.

Vielen Dank!
Ich werds gleich mal umsetzen.
 
Vom Zeitstempel her denk ich mal, dass du meinen Beitrag nicht gesehen hast.
Es ist die normaliserte Form von der Idee von Da_Chris...
 
ich hatte es erst gelesen, als ich die Antwort schon abgeschickt hatte. Aber ich finds natürlich klasse, dass du dir die Mühe gemacht hast, das so ausführlich nochmal aufzulisten. Vor allem hat man dann immer nen Anhaltspunkt, wenn man grad wieder ne Denkblockade hat und man sich das dann nochmal angucken kann ;)
 
Zurück