So erreichen Sie die Lokalisierung mit NoSQL

8

Bis jetzt habe ich immer relationale Datenbanken benutzt (und war wirklich glücklich!). Vor kurzem entdeckte ich jedoch Parse und fand es ganz nett, also entschied ich mich, es zu versuchen. Es kommt jedoch mit einer NoSQL-Datenbank. Ich versuche immer noch, mich darum zu kümmern. Meine Frage ist also, wie würden Sie eine Lokalisierung empfehlen? Ich könnte mir die folgenden Ansätze vorstellen, was denkst du?

  • Ansatz A: Haben Sie ein einzelnes "Zeichenketten" -Feld auf dem Dokument und speichern Sie alle sprachspezifischen Daten in diesem Feld. Zum Beispiel

    %Vor%
  • Ansatz B: Haben mehrere Felder im Dokument, wobei jedes Feld auf eine sprachspezifische Datei zeigt. Definieren Sie ein anderes Dokument namens strings . Zum Beispiel

    %Vor%
  • Ansatz C: Wie in einem relationalen Datenbankschema eine separate strings -Tabelle mit Sprachcode haben. Fragen Sie diese Tabelle / das Dokument separat ab und führen Sie die Ergebnisse zusammen

  • Ansatz D: (NEU) Ähnlich wie Ansatz B, wobei viele Spalten über zwei Dokumente bevorzugt werden, um alle relevanten Daten in demselben Dokument zu halten.

    %Vor%

Ansatz A: Für mich sinnvoll, aber ich kenne keine einfache Möglichkeit (im Parse-Framework), nur die relevanten Daten an den Client zurückzusenden. Es sendet alle Zeichenfolgen an den Client - & gt; redundante Bandbreite verwenden

Ansatz B: Da ich von einem relationalen DB-Hintergrund komme, mag ich nicht die Aussicht, zu viele Spalten zu haben (es kann schließlich 30 verschiedene Spalten für 30 verschiedene Sprachen haben) und der Client kann nicht einfach nur ein Objekt verwenden. Zeichenfolgen Es muss immer den Sprachcode am Ende des Feldnamens anhängen, was mühsam (und auch riskant) ist. Aber dieser Ansatz ist für mich am sinnvollsten.

Ansatz C: Ich kann Sie sagen hören: "Was ist der Sinn von NoSQL, wenn Sie NoSQL an das relationale DB-Design-Paradigma anpassen wollen"

Ansatz D: Ja, Sie werden mit lächerlich vielen Spalten enden, aber ich fühlte ein Hauptziel darin, alle notwendigen Daten in einem Dokument zu speichern, anstatt sie über 1+ Dokumente zu verteilen. Und die Anzahl der Felder ist überhaupt kein Problem. Daher gehe ich jetzt mit diesem Ansatz.

Wie erreichen Sie also die Lokalisierung in Ihren NoSQL-Datenbankschemas?

    
Ege Akpinar 31.03.2013, 13:28
quelle

2 Antworten

1

Vor kurzem gab es in den Foren von RavenDB eine Diskussion über dieses Thema. Siehe hier

Wie bei den meisten Dingen in NoSQL gibt es viele verschiedene Optionen. Eine Idee, die aufkam, ist, dass Sie in vielen Dokumentendatenbanken (wie RavenDB) String-basierte "semantische" Schlüssel haben können. Diese könnten genutzt werden, um Daten zu lokalisieren.

Betrachten Sie zum Beispiel mehrere Dokumente, die zusammenarbeiten, um ein Produkt zu repräsentieren:

%Vor%

Die nicht lokalisierbaren Eigenschaften werden in products/1 gespeichert, was der Hauptdokumentschlüssel ist. Lokalisierbare Zeichenketten könnten aber auch in anderen Dokumenten vorkommen, die mit ihrem Schlüssel in Beziehung stehen.

Damit das gut funktioniert, müssen Sie mit den verschiedenen Dokumenten arbeiten. In RavenDB - dies würde von einem benutzerdefinierten "Bundle" zur Verfügung gestellt werden. (Es existiert noch nicht - ich arbeite daran.) Andere Datenbanken haben möglicherweise andere Implementierungsdetails, die diesen Ansatz möglicherweise noch ermöglichen.

    
Matt Johnson 02.04.2013 23:55
quelle
0

Ayende schlug vor, etwas wie

zu verwenden %Vor%     
Alexey Zimarev 07.10.2013 22:37
quelle

Tags und Links