Szenario: Swing-Applikation, Hibernate, MySQL (Wechsel auf andere DB soll möglich sein). Es werden Stammdaten z.B. Adressen verwaltet.
Der User soll zusätzliche individuelle/von ihm gewählte Datenbankfelder anlegen können. Z.B. Adressstamm hat Spalten Name, Strasse, PLZ, Ort, Telefon. Der User möchte zusätzlich weitere Spalten definieren können, z.B. Augenfarbe, Größe. Wie kann dies datenbanktechnisch realisiert werden. (Hier geht es nicht um die Darstellung der Daten mit Swing.)
1. Ansatz:
(Primärschlüssel werden nicht aufgeführt)
Eine Tabelle "Adressen" mit den Spalten:
- Name
- Strasse
- PLZ
- Ort
- Telefon
- Individuallfelder (VARCHAR(5000))
plus eine Tabelle "Individualfelder" mit den Spalten:
- Beschreibung (z.B. Augenfarbe)
- Position
- Länge
- Typ
In der Tabelle Individuallfelder werden die zusätzlichen Felder vom User angelegt und in der Spalte Individualfelder des Adressstammes an der angegebenen Position gespeichert.
2. Ansatz:
Eine Tabelle "Adressen" mit den Spalten:
- Adresse_ID
- Name
- Strasse
- PLZ
- Ort
- Telefon
plus eine Tabelle "Individualfelder" mit den Spalten:
- Individuallfeld_ID
- Beschreibung (z.B. Augenfarbe)
- Typ
plus eine Tabelle "Adressen_Wert" mit den Spalten:
- Adresse_ID
- Individuallfeld_ID
- Wert (VARCHAR(255)
Dazu meine Fragen: Gibt es noch weitere Lösungen um dem User Individualfelder zur Verfügung zu stellen? Welchen Ansatz würdet Ihr bevorzugen (Vor- und Nachteile beim Datenzugriff)? (Datenmenge angenommen 5000 Adressen und 50 Individualfelder.)
Gruß
Hendrik
Der User soll zusätzliche individuelle/von ihm gewählte Datenbankfelder anlegen können. Z.B. Adressstamm hat Spalten Name, Strasse, PLZ, Ort, Telefon. Der User möchte zusätzlich weitere Spalten definieren können, z.B. Augenfarbe, Größe. Wie kann dies datenbanktechnisch realisiert werden. (Hier geht es nicht um die Darstellung der Daten mit Swing.)
1. Ansatz:
(Primärschlüssel werden nicht aufgeführt)
Eine Tabelle "Adressen" mit den Spalten:
- Name
- Strasse
- PLZ
- Ort
- Telefon
- Individuallfelder (VARCHAR(5000))
plus eine Tabelle "Individualfelder" mit den Spalten:
- Beschreibung (z.B. Augenfarbe)
- Position
- Länge
- Typ
In der Tabelle Individuallfelder werden die zusätzlichen Felder vom User angelegt und in der Spalte Individualfelder des Adressstammes an der angegebenen Position gespeichert.
2. Ansatz:
Eine Tabelle "Adressen" mit den Spalten:
- Adresse_ID
- Name
- Strasse
- PLZ
- Ort
- Telefon
plus eine Tabelle "Individualfelder" mit den Spalten:
- Individuallfeld_ID
- Beschreibung (z.B. Augenfarbe)
- Typ
plus eine Tabelle "Adressen_Wert" mit den Spalten:
- Adresse_ID
- Individuallfeld_ID
- Wert (VARCHAR(255)
Dazu meine Fragen: Gibt es noch weitere Lösungen um dem User Individualfelder zur Verfügung zu stellen? Welchen Ansatz würdet Ihr bevorzugen (Vor- und Nachteile beim Datenzugriff)? (Datenmenge angenommen 5000 Adressen und 50 Individualfelder.)
Gruß
Hendrik