状況
伝統的なデータベースを使用して倉庫システムを実装しようとしています。rethinkdbを使用した倉庫システムの実装:必要なACIDの要件はありますか?
表は次のとおり
- 製品(1つのSKUを表す各列)
- warehouse_locations
- パレット(各行が特定のパレットを表す。)(各行は、特定の特定の倉庫内の棚を表します。)
- user_defined_categories(各行は特定のユーザー定義のカテゴリを表します。
- products_in_pallets_by_categories(たとえば、予約済み、利用可能、total_physicalなど)各行は、パレット、製品、およびuser_defined_categoriesテーブルの外部キーを持ちます。特定のカテゴリの特定のパレット内の製品数を指定します)。
- products_in_warehouse_locations_by_categories(各行には、warehouse_locations、productsテーブル、およびuser_defined_categoriesの外部キーがあります。ユーザーが/やる
エンドユーザーがどのようなパレットに削除/配置されているどのような製品について、システムを更新します見たいどのような終わり)
。
エンドユーザーは、倉庫内に予約されている製品または利用可能な製品の数をいつでも(好ましくはリアルタイムで)知りたいことがあります。
私の最初の計画は何ですか?
PostgresQLのような伝統的なRDBMSと、RabbitMQのようなメッセージキューを使って、リアルタイムの更新を提供したいと考えました。リアルタイム更新では、単一のページアプリケーションまたは携帯電話のいずれかを使用しているエンドユーザーが、在庫の変更をリアルタイムで観察できることを意味します。
何が変更されましたか?あなたは完全なACIDサポートや強い スキーマの施行-で、この場合、あなたがそのようなMySQLやPostgreSQLのようリレーショナル データベースを使用してオフに優れているが必要な場合は
I came across rethinkdb FAQ、それは
RethinkDB言ったは良い選択ではありません。
なぜrethinkdbを検討していますか?
私はそれを使用することができ、リアルタイムの更新が可能なので、顧客のセールスチームが私たちのシステム上で世界各地に予約を置くことを期待しているので大いに役立ちます。
最も頻繁な更新/挿入は何ですか?
ある場所から別の場所への製品の移動。私はリレーションテーブルにたくさんの更新/挿入/削除を期待しています。時々、私はrethinkdbのパラダイムでこれを説明する方法を知らないことをお詫びします。私は伝統的なRDBMSの人です。
システムはまだ構築されていますか?
まだありません。だから私は実際に進む前にrethinkdbに関する答えを探したいのです。
トランザクションを使用しますか?
まあ、わかりません。
倉庫労働者が製品を(一部または完全に)1つのパレットから別のパレットに移動させる現実の事例を考えることができます。
もう1つの実際のケースは、倉庫作業員が製品をパレットから倉庫の場所に移動する場合(またはその逆)です。
私は間違いなくトランザクションを使用する必要がありますか?再び、私は確信していません。
原因物理的に移動が完了した後に、システムを更新することを期待しています。
彼らは<another dropdown>
から<some dropdown>
から
- 移動を選択するために、私は画面を提供しますので、質問は何ですか?
現時点では、ユーザーの要件に基づいて、倉庫システムの完全なACIDサポートまたは強力なスキーマの適用が必要ですか?それはrethinkdbを使って実装可能ですか?
私はまた、システムは、あなたが物事を扱っている場合、そのような労働者Aのようなイベントが25
リレーショナルデータベース**は、 "*たくさんの更新/挿入/削除*"を行うために使用されています。なぜあなたはPostgresでそれをすることができないと思いますか? –
私はこの質問が哲学/ディスカッション指向のクエリだと思っていますが、分散システムの専門家であるAphyr => https://aphyr.com/posts/329-jepsen-rethinkdb- 2-1-5。 RethinkDBは 'hard consistent'と 'majority'の読み込みに適切なフラグを使って '結局一貫性がある'ということを強調しません。RethinkDBを使ってかなり安定した(そして確かに検証された)設定ができます。 – dalanmiller
@dalanmillerリンクをありがとう本当にrethinkdbしていますか? –