Frage

Ich bin eine neue Revision meiner Java-Anwendung entwerfen (eine eingebettete H2-Datenbank) um eine Neugestaltung der Art und Weise werde ich meine Daten werden handhaben. Hier ist, wie ich es geplant:

  • Einträge Tabellen-
    • Beitrags-ID
    • Eintragsname
  • Eigenschaften Tabellen-
    • Immobilien ID
    • Property Name
  • (Eigengut) Wert Tabellen-
    • Wert ID
    • Beitrags-ID
    • (Value Spalten ...)
  • (Individual-Eintrag) Wert Tabellen-
    • Property Name
    • (Eigengut) Wert ID

Jeder Eintrag kann mehrere Eigenschaften aufweist (einschließlich mehreren Eigenschaften des gleichen Typs). Jede Eigenschaft hat seine eigene Art und Weise seine Werte zu speichern. Ich brauche alle Eigenschaften für einen bestimmten Eintrag definiert zu sehen, und vielleicht alle Einträge für jede gegebene Eigenschaft.

Ist das ein guter Weg, es zu tun?

Edit: Ich bin mir nicht sicher, ob ich es gut erklärt ...

War es hilfreich?

Lösung

Meiner Meinung nach ist das eine sehr schlechte Art und Weise Daten zu modellieren, aber dies ist eine sehr Elfenbeinturm Art und Weise auf der Situation an, als ich dieses Modell nicht in der Praxis anzuwenden gehabt habe. By the way, ist es der "Entity-Attribute-Value" Ansatz bezeichnet. Und der Grund, warum ich nicht mag ist, weil es ist sehr un-Schema-wie in diesem meisten SQL-Funktionalität in irgendeiner Weise reproduziert werden.

Es gibt definitiv eine Zeit und einen Platz für sie (wie wenn Sie beabsichtigen, viele Objekte zu modellieren, die unterschiedlichen Modelle haben) oder die Schemata, die sich häufig ändern. Aber ich persönlich denke, es ist schrecklich.

Andere Tipps

Wenn ich Sie richtig verstehe, würde ich Kreuzung verwenden oder Kreuzung Tabellen statt, was Sie beschrieben.

So haben Sie eine Abfrage erstellen, können Sie alle Eigenschaften pro Entery zu bekommen, oder alle ente pro Haus.

Ich bin mit Unbekannt Google. Dies spiegelt sich auch in der Inner-Plattform Effekt .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top