Frage

Ich möchte einen Webservice mit MongoDB und Lithium bauen. Was ist besser:

  • Speichern Sie die Daten aller Clients in einer Sammlung (z. B. alle Transaktionsdokumente mehrerer Clients in einer Sammlungstransaktionen)

  • Erstellen Sie mehrere Sammlungen EG Transactions_client1, Transactions_client2 usw.

  • Ein dB pro Client

Das System muss skalierbar sein und leicht bereitzustellen sein

War es hilfreich?

Lösung

Um eine Richtung zu gewährleisten, müsste man viel mehr darüber wissen, was Sie erreichen möchten.

Ich würde jedoch Option 2 (mehrere Sammlungen) ausschließen, da ich keine Vorteile dieses Ansatzes sehe Die Anzahl der Sammlungen, die Sie haben können Namespace -Datei)

Option 1 kann dazu beitragen, Kunden zu isolieren und die Sicherheit zu verbessern. Bei der Auswahl der Datenbank besteht jedoch immer noch das Risiko von Programmierfehlern. Das Isolieren dieses Codes ist jedoch einfach.

Beide Optionen haben den Nachteil, den Sie nicht in allen Sammlungen abfragen können. Sie möchten jedoch immer Zugriff auf einige Sammlungen haben, die im Wesentlichen über alle Kunden (z. B. Protokolle, Statistiken usw.) geteilt werden, sodass Sie die zusätzliche Belastung haben, diese zu trennen.

Deshalb würde ich normalerweise Gehen Sie für Option 1.

Andere Tipps

Ich schlage vor, von einem dB und einer Sammlung aus zu beginnen. Normalerweise verwalten eine Datenbank einfacher. Wenn Sie in Zukunft separate Datenbank erstellen müssen (um einen Client zu beschleunigen), können Sie entsorgen Daten dieses Clients und setzen Sie ihn auf den separaten Datenbankserver (oder nur in separater Sammlung). Nehmen Sie diese Funktion einfach in den Sinn, wenn Sie die Architektur Ihrer Anwendung entwerfen. Meine Meinung ist also Option 1. Aus einer anderen Sicht können Sie mit einer Sammlung über Sharding und Replikation skalieren.

Das System muss skalierbar sein und leicht bereitzustellen sein

Ihre Datenbank ist skalierbar, nur weil Sie MongoDB verwenden, die zur Skalierung ausgelegt sind. Und Sie können eine Datenbank problemlos bereitstellen, da sie Schemaless ist. Im Allgemeinen benötigen Sie möglicherweise einige Daten von einem Server auf einen anderen. Es gibt viele Möglichkeiten, es zu tun: Kopiensammlung, Daten Import Export, Datenbank kopieren.

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