Datenbank-Modell mit erweiterbaren Einträgen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datenbank-Modell mit erweiterbaren Einträgen

    Hallo liebe Community!

    Ich soll ein Datenbanksystem für Adressen implementieren, welches am Ende neben einigen Standardfeldern auch erweiterbare Felder beinhalten soll.
    Es sollen also Informationen gespeichert werden, für welche es keine eigens definierten Felder gibt.
    Habt ihr villeicht eine Idee, wie so ein Modell oder Konzept aussehen soll?

    Lg,
    mannyk
  • Naja, fangen wir mal so an: Welche Eigenschaften haben denn dynamische Felder?

    • Sie haben einen Namen
    • Sie haben einen Namen
    • Sie haben einen Wert
    • Sie haben einen Datentyp
    • Man kann zusätzliche Infos speichern, wie z.B. Daten (last_updated, created_at)
    • Eventuell müssen Rollen oder Rechte eingebunden werden, dann sollte es eine role_id oder ähnliches als Spalte geben
    • Eventuell gibt es Verbindungen zu anderen Tabellen

    Das sind also einige Spalten für eine Tabelle mit eigen definierbaren Feldern.

    Dann musst du noch sehen, wie du diese "dynamische" Tabelle mit den tatsächlichen Daten verbindest. Wenn z.B. mehrere Nutzer Werte für dieselben Felder haben dürfen, musst du Struktur von Daten trennen (also in der Auflistung oben keinen "Wert" und keine Infos zu Rollen). Dann hast du eine Tabelle, in der die Struktur der dynamischen Felder beschrieben ist. Eine andere Tabelle beinhaltet eine Verbindung zwischen dynamischem Feld, Nutzer und tatsächlichen Werten. Dazu ist aber die Frage, wie dein System aussieht...
  • Hallo und danke für deine schnelle Antwort!

    Ich hab nun versucht das umzusetzen, was du mir geraten hast. Da ich in diesem Umfeld noch nicht so sattelfest bin, hab ich mir erlaubt ein Bild des Modells zu posten.
    Mich würde deshalb ein Feedback über das Modell sehr freuen!
    Danke und lg,
    mannyk
    Bilder
    • modell.jpg

      55,61 kB, 697×781, 205 mal angesehen
  • Kreise in Datenbanken führen ja generell zu Punktabzug :)
    Ich verstehe auch gar nicht warum du von der Adressinfo zurück zum Kunden willst?

    Also ich würde ganz auf die AdressInfo verzichten.

    Einen Datentyp.. naja, fangen wir mal von vorne an. Du hast einen Fremdschlüssel für die Adresse, einen Schlüssel und einen Wert.
    Ich würde die Spalte übrigens nicht Id nennen, da Id etwas eindeutiges suggeriert, die Spalte aber nur in Verbindung mit dem Fremdschlüssel eindeutig ist.

    Das System ist jedenfalls auf diese Art durchaus verbreitet. ABER es hat seine Einschränkungen.
    Bei der Spalte "Wert" musst du dich aufs kleinste gemeinsame Vielfache einigen. Am besten du nimmst TEXT als Datentyp.

    So kannst du natürlich nicht mehr nach Zahlen oder ähnlichem sortieren. Beweis: "11" < "2"
    Wenn die Daten jedoch nur zusätzlich sind, ist das alles kein Problem.

    Wenn du einen Typ hast, dann referenziere diesen übrigens direkt aus der AdressInfo Tabelle.

    Die zweite Lösung wäre eine Spalte für jeden Datentyp anzulegen. Platzverschwendung natürlich.
    Wenn es "Kerndaten" gibt, dann gehören die eben in die Haupttabelle.