14

私は e コマース サイトを構築する予定であり、アプリケーションの計画にうまく適合する SQL を使用しないデータベースを使用したいと考えています。しかし、どのデータベースが仕事に適しているかについては、よくわかりません。さまざまな DB を比較した結果、最適と思われるのは mongo、couch、または orientdb のいずれかである可能性があります。MySQLのようなものと比較して、それらすべてが使用されているか使用されていないかについての議論を見てきました。しかし、それらの間 (nosql データベース) のうち、どれが e コマース ソリューションに適しているでしょうか?

ユースケースでは、1秒間に数千のトランザクションが発生しないことに注意してください。または同様に高い書き込み速度。それらは中程度の確かさですが、確立されたデータベースが処理できるレベルです。

CouchDB: マスターからマスターへのレプリケーションがあり、実際に使用できます。そうでない場合でも、コードに同じ機能を実装する必要があります。ユーザーデータベースを作成し、マザーシップと同期できるようにする必要があります。(ユーザーは、メイン ドメイン サーバーと同期できる独自の、場合によっては localhost データベースを持ちます)。クエリが db に格納されると、Couch も高速になります。おそらく、読み取りパフォーマンスの必要性が高くなるからです。たくさんではありませんが。

MongoDB: クエリは非常に簡単でユーザー フレンドリーです。また、エンド ユーザーが特定の時間に特定のことをクエリする必要がある場合があるため、事前に説明できない場合があるため、これの方が適しているように思えます。クエリをデータベースに事前に保存する必要はありません。アトミック トランザクションをサポートしますが、一度に 1 つのドキュメントに書き込む場合のみです。

OrientDB: グラフ データベース。ほとんどの人が慣れ親しんでいるものとは大きく異なりますが、ニーズがあれば、それも非常にうまく適合する可能性があります。Orient には、ACID トランザクションをサポートするだけでなく、スキーマレスであるという利点があります。グラフ データベースが最適な顧客や製品との関係は数多くあります。Orient は、couchdb と同様に、マスターからマスターへのレプリケーションもサポートしています。

誤解しないでください。MySQL のようなものを使用してこれを伝統的に構築する方法はわかりますが、nosql ソリューションの使いやすさとシンプルさは非常に魅力的です。私の場合、スキーマレス ソリューションが必要ですが、mysql よりも nosql の方がはるかに簡単です。特定の製品には、別の製品よりも多くのまたは少ないアイテムが含まれる場合があります。また、新しいフィールドが追加されるたびにテーブルを再作成しないようにすることをお勧めします。

では、これら 3 つ (またはあなたがより優れていると思われる他の機能) のうち、顧客トランザクションを処理する際に、e コマース ベースのサイトに関して、それぞれのどの機能が有利に働く可能性がありますか?

編集:私が既存のソリューションを使用していない理由は、必要な統合機能を備えているため、利用可能なソリューションがないためです。また、これを当社のフルプロダクトとして活用することも目指しています。販売だけでなく、他にもいくつかの統合があります。また、店舗のPOSシステムと連携する予定です。

4

3 に答える 3

15

eコマースはショッピングカートからメンバーシップや定期購読まですべてを網羅できるため、想定している要件と複雑さを正確に推測することは困難です。

eコマースサイトを構築する際の初期の考慮事項の1つは、要件を満たすことができる確立されたeコマース製品またはツールキットがすでに存在するかどうかを調査することです。ユースケースが単純であるように見えても、注文、請求、支払い、製品、顧客関係などのプロセスには多くの微妙な点があります。また、アプリケーションをカタログ管理の側面(場合によってはよりカスタム)と請求(場合によってはサードパーティ、場合によってはホストされた請求/支払いAPIを介して)に分けることも可能です。

もう1つの考慮事項は、eコマースサイトを誰のために開発しているのかということです。これは、自分のかゆみを掻くためですか、それともクライアントのためですか。カスタムビルドの時間、予算、および機能は、見積もりとスケジュール設定が難しい場合があります。また、テクノロジーのニッチな選択により、追加の開発専門知識を見つけたり採用したりすることが困難になる場合があります。

3番目の考慮事項は、アプリケーションを開発するために選択する言語が何であるかです。一部の言語には、さまざまなデータベース用のより完全な/成熟した/文書化されたドライバーおよび/またはフレームワークの抽象化があります。

とは言うものの、eコマースシステムを作成することは、多くの開発者にとって通過儀礼のようです;-)。

編集:この回答が最初に2012年に投稿されてから多くの変更があり、現在の製品情報を必ず参照する必要があります。たとえば、MongoDBは、MongoDB 3.4(2016)以降 のDecimal128値と、MongoDB 3.6(2017)以降のマルチドキュメントトランザクションをサポートしています。

于 2012-09-19T11:42:24.343 に答える
2

ここで利用可能なさまざまな NoSql データベースの比較を確認してください。それに従ってあなたの要件に合わせてください。

于 2013-01-08T10:10:36.630 に答える
0

MongoDB 4 はマルチドキュメント ACID トランザクションになりました! そのため、e コマースに適しています。

チェックアウト: https://www.mongodb.com/transactions

于 2018-08-23T23:02:38.960 に答える