Frage

Es gibt viel Vortrag über Contra-revolutionäre NOSQL-Datenbanken wie cassandra , couchdb , hypertable , mongodb , Projekt Voldemort , bigtable und so viel mehr. Soweit ich besorgt bin, sind die stärksten Profis Skalierbarkeit, Leistung und Einfachheit.

Ich denke ernsthaft darüber nach, ein wenig nicht relationales DB für unser nächstes Projekt zu verwenden. Einige Teams umfassen jedoch einige RDBMS-Fanatika, so dass ein überzeugender Schalter in einigen Fällen nur aufgrund von emotionalen Gründen unmöglich ist. Wenn es um komplexe Datenmodelle geht, glaube ich persönlich noch an die Kraft von RDBMS mit ihren Niedrigniederlassungsmechanismen.

Jetzt kommt hier meine Frage: Ich habe mich gefragt, ob jemand sowohl mit rdbms und nicht relationaler db in einem neuen projekt in Betracht ziehen könnte: das komplexe, aber nicht leistungskritische Datenmodell würde noch Mit einem relationalen Modell und dB implementieren, während alle leistungskritischen, aber einfachen Modelle mit einem nicht relationalen DB umgesetzt werden. Darüber hinaus wäre eine solche weiche Paradigma-Verschiebung viel einfacher, um an einigen emotionalen Teammitgliedern als ein hartes zu verkaufen.

würde jemand einen solchen Ansatz empfehlen? Oder würden Sie lieber ein Schwarz oder Weiß empfehlen, d. H. Relationaler oder nicht relationaler Ansatz? Alle Kommentare hoch willkommen!


P.S.: Jede Idee, wenn eine solche Mix-up gut mit Frühling und Ruhezustand / JPA funktioniert?

War es hilfreich?

Lösung

Rob Cery schrieb kürzlich über seine Erleben Sie den Bau seiner beliebten Webanwendung tekpub mit beiden MONGODB und MySQL, wobei die Stärken von beiden hervorhebt:

Das hochgeladene Zeug (Kontoinformationen, Produktionen und Episodeninfo) ist ideal für ein "richtiges" Art von Sachen wie MONGODB. Das "Was gestern passiert ist" ist für ein relationales System perfekt.

auf einem High-Level-Rob zerbricht ihre Anwendungsdaten in zwei Scopes: Laufzeitdaten und historische Daten. Der derzeitige Status des Einkaufswagens eines Benutzers ist beispielsweise ideal, um in MONGODB aufzuhalten. Es ist ein Objekt-Blob, der ständig mutiert. Eine historische Aufzeichnung dessen, was ein- und aus dem Warenkorb ging; als es passiert ist; Der Zustand der Kasse eignet sich hervorragend für relationale, tabellarische Daten in MySQL.

er fasst mit diesem zusammen:

es funktioniert perfekt. Ich konnte nicht mit unserem Setup glücklicher sein. Es ist unglaublich niedrig, wir können es wie jede andere Lösung wieder anstellen, und wir haben die Daten, die wir brauchen, wenn wir es brauchen.

Update Mai 2016 (6 Jahre später)

Dies ist in den letzten 6 Jahren nur treuer geworden. Es ist jetzt üblich, dass NOSQL-Datenbanken mit Transaktionsgeschäften und herkömmlichen relationalen Datenbanken analytische Analysedatenbanken mit Strom versorgt werden.

Andere Tipps

Ich benutze beide.RDBMS ist gut für komplexe Analysen, Berichte und Daten, die auf verschiedene Weise von mehreren Benutzern auf verschiedene Weise aufgerufen werden.NOSQL ist großartig, wenn ich eine Daten aus einer einzelnen Benutzerperspektive betrachte.Eine Frage, die ich mich frage, ist: ", der auf diese Daten zugreift?".Wenn die Antwort 1 Benutzer ist, verwende ich NOSQL, um sie zu speichern.

Natürlich gibt es andere Zeiten, in denen es angemessen ist, aber das ist nur ein Beispiel.

Wie Sie erwähnt haben, ist NOSQL einfacher Speicher, und es kann dazu führen, dass Sie den richtigen komplexen Code, um Daten aufrechtzuerhalten, um Daten aufrechtzuerhalten.

Nichtrückgeräumte Schlüsselwertdatenbanken werden am besten für den BLOB-Speicher und das Caching verwendet.

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