web-dev-qa-db-ja.com

NoSQLデータベースを使用した製品の価格設定と生産計画のための直交設計

私は、製品の価格設定と生産計画のために協力している会社のために、拡張可能なソフトウェアを開発中です。

現在のシナリオ

製品には基本的に2つのタイプがあります:製造と取引(変換なしの単純な売買)。製造は通常または受注生産であり、受注生産はほとんど通常のモデルから逸脱しています。商品の数は限られていますが(2000年頃)、各商品にはサイズ、色、色合いなどの複数の属性があります。現在、在庫とまともな会計パッケージを備えた注文管理のためのソフトウェアがあります。原価計算と価格設定は、いくつかのモデルをサンプリングし、間接費とマージンのパーセンテージを追加することにより、任意に行われるようになりました。

必須

  • ユニットあたりの製品コストを計算するには
  • それらを有効な価格設定モデルに変換します(価格設定は数量やその他の要因によって異なる場合があります)。
  • 製品ごとの正確なコストと収益性を計算し、
  • 既存の注文管理システムと在庫に基づいて、通常モデルとオーダーメイドユニットの生産を積極的に計画します

提案されたデザイン

以下のデザインを提案しました。

  • 5Mの生産(人、材料、機械、方法、およびお金)に基づいて、各固有の製品の製品情報をドキュメント形式で保存します。
  • 4つのMのそれぞれの個別のモジュール-お金の観点からの男性、機械、材料、および方法と、複合ブロックにマージおよび結合できる各モジュールのプリミティブビルディングブロック
  • 各ドキュメントとともに必要なメタデータと結果セットを保存します
  • メタデータを解析し、メタデータに基づいてデータに基づいて動作し、定義された結果セットを返す別のレイヤー( [〜#〜] dsl [〜#〜] と同様に、メタデータと結果セットの両方が実行時に再定義されます)
  • 製品のコストに作用する別の価格設定モデル
  • 注文管理システムのデータと製品情報を処理する個別の生産計画モジュール
  • MapReduce を使用してデータを集計し、分析します
  • テクノロジー: MongoDB 、Python、 Django 、および NumPy

すべてのデータはJSON形式で保存され、すべてのビジネスロジックはJSONファイル(技術的には、私の場合はPython辞書)を解析し、キーと値に基づいて出力を生成するように記述されています。

では、なぜ私はここにいるのですか?

現在のソフトウェア会社は、カスタマイズ可能な従来のすぐに使えるRDBMSシステムを推奨しています。このシステムで私が見つけた主な問題は、さまざまな属性を持つ製品のデータの重複、分析ツールの欠如、製品と価格との緊密な結合、複雑なクエリの結合が多すぎることですが、堅牢性と集計分析を向上させるために推奨されます。 XXXXは常に、市場がこのアプローチを実行していると語っています。ソフトウェア全体がリアルタイムで使用されることはなく、リアルタイムシステムのほとんどは独自の製品にのみリンクしているためです。

  • 私の提案したデザインは本当に直交していますか?
  • 製品、コスト、価格の疎結合は機能しますか?
  • この種の問題に対する一般的なアプローチは何ですか?
  • MapReduceは、従来のSQLアプローチよりも、この種の問題について(NumPyとともに)データを分析するためのより良い方法を提供しますか?

基本的には数字を使って作業しますが、将来拡張できる汎用モデルを考えています。

2
Ubermensch

NoSQLベースのソリューションよりも優れたツールを見つけ、(より重要な)RDBMSベースのソリューションに精通している可能性があります。通常、パフォーマンスの制限(ストレージの量、1秒あたりのクエリ数など)に達し始めた場合は、NoSQLベースのソリューションを検討する必要があります。

ほとんどすべてのNoSQLソリューションは、整合性、可用性、またはパーティション許容度の要件を緩和し( CAP定理 を参照)、アプリケーションロジックでそれを処理する必要があります。 IMO、実際にRDBMSの制限に達していない限り、この複雑さは控えるべきです。

2
Satyajit