Ich möchte einen Teil meines Systems organisieren, aber ich kann nicht bequemes Formular für die Datendarstellung für die Interaktion mit meiner App wählen. So habe ich einige lokale „Repository“ des Datenobjekts, descripted wie folgt:Datenbank von schwach typisierten Objekten
Object1
{ id = TypeId, field1 = value1, otherObjectSpecifedField = value2 ... }
...
Es gibt viele Objekte (zB 1000) von vielen Arten (zum Beispiel 50). Jeder Typ hat seine eigene UniqueId und seine eigene Beschreibung und Reihe von Feldern.
Nächste Sache ist, dass für jede Objekt ich habe eine Reihe von Filtern, die diesem Objekt entspricht, ist tatsächlich im Moment. Es sieht wie folgt aus:
Filter
{ filterName1 = filterValue, filterName2 < filterValue }
Object // filter is applied for this object
{ ... }
Der Prozess dieses "Repository" verwenden:
In meiner app ich habe Anwendung Staaten, die Filter von oben bedeutet. Beispiel: Anwendung Lokalisierung kann seine ‚de‘ (meine Anwendung diesen Wert kennt und kann es beim Start aus), und wir haben Filter, mit dem Namen ‚Lokalisierung‘ und in unserem Repository können wir es wie folgt verwenden:
Filter { localization = 'en'} Object1 { ... } // this object i should choose when localization is en
Wenn meine App beschließt, gerade zu überprüfen, welcher Satz von Objekten gerade aktuell ist, kommt sie ins Repository und fragt: "Hier ein TypeId und bitte, gehen Sie durch jedes Filter + Objektpaar und sagen Sie, welches Objekt durch Filter tatsächlich ist einige Filterwerte auflösen (Lokalisierung von Beispiel oben) ich werde sie für Sie auflösen ".
Dann Repository-Wanderungen durch jedes Objekt und vergleichen, was ist aktuell durch Filter, und das ist nicht und tatsächlich auf App geben. Also prüft er jeden Filter jedes Objekts und gibt es nur, wenn alle von ihnen tatsächlich sind und er es in der Laufzeit tat.
In der aktuellen Implementierung dieser Satz von fiters + Objekte in XML-Datei in sehr spezifischen XML-Format gespeichert, die bequem von App zu lesen ist, aber sehr schwer von Mensch zu pflegen. Und ich denke, dass es einen Platz zur Optimierung aller Prozesse gibt. Ich denke, wir können es schaffen, durch Objekte zu gehen und sie mit anderen zu vergleichen. Jetzt denke ich in der Seite von NoSQL dokumentenorientierten Datenbanken. Weil jedes Objekt seine einzigartige Struktur hat und vielleicht eine Auswahlroutine verwendet, kann ich wählen, was ich brauche.
Vielleicht hat jemand irgendwelche Vorschläge über diese Art von Datenbankorganisation? Vielleicht kennen Sie eine bestimmte Datenstruktur für diese Art von Daten?