2

仮想クレジットまたは実際の通貨を使用して購入できるさまざまな製品を使用して、オンラインストアのクレジットベースの購入を実装するためのエレガントな方法が必要です。あるいは、製品はクレジットでのみ価格設定することができます。

前作

Credit注文後の処理でさまざまな製品タイプ( 、、、Voucherなど)を使用する前にクレジットベースの購入を実装し、購入したクレジットを実際の通貨Musicの形式でユーザーに割り当てました。これは、将来の注文の合計料金を割り引くために使用できます。

これはその場しのぎの解決策としてはかなりうまく機能しましたが、実際の通貨を使うよりも顧客にとってクレジットを使う方が心理的に簡単なので、仮想通貨を実際の通貨から切り離すことはできませんでした。

設計

実際の通貨商品と一緒に割引価格でクレジットを同時に一括購入できるように、データベースを正しく設計するためのガイダンスが必要です。または、すべての商品の価格をクレジットで設定し、クレジットのみに実際の通貨価値を設定する必要がありますか?

既存のデータベース設計

部分的なProductsテーブル:

  • 製品番号
  • タイトル
  • タイプ
  • 単価
  • セールスプライス

部分的なOrdersテーブル:

  • OrderId
  • UserId(Usersテーブルに関連、表示されていません)
  • 状態
  • 価値
  • 合計

部分OrderItemsテーブル(テーブルと同様CartItems):

  • OrderItemId
  • OrderId(Ordersテーブルに関連)
  • ProductId(Productsテーブルに関連)
  • 単価
  • セールスプライス

予想されるUserCredits表:

  • CreditId
  • UserId(Usersテーブルに関連、表示されていません)
  • (+/-値。時間の経過とともに合計してサルドを決定します。)
  • 日にち

SQLServerデータベースでASP.NETMVCとLINQ-to-SQLを使用しています。

4

2 に答える 2

4

サプライヤーにクレジットで支払うことはないので、内部会計の観点からは、製品に対して現金の価値(USD、UKPなど)のみを保持する方がよいでしょう。

サイトのユーザーに表示するときは、ハードプライスをバウチャーに変換する通貨換算テーブルが必要です。データモデルをフロントエンドディスプレイから分離することは、重要な設計戦略です。実際の現金価格と仮想クレジット価格の両方を表示するか、クレジット評価のみを表示するかは、データがデータベースに保存される方法とは関係ありません。

于 2010-03-30T12:20:57.703 に答える
1

経理/財務担当者に相談してください。一度与えられたクレジットは、二重会計のお金と同じくらい現実的です。確かに、あなたはサプライヤーにクレジットを支払っていませんが、現金で支払わなければならないクレジットの商品を配達することを約束しています。それは常にすべてのバランスが取れている必要があり、あなたの完全な財政状態を確認するには、バランスシートでこれらのクレジットを取得できるはずです。

アカウントとトランザクションも最初からモデル化してみてください。後で財務/会計ソフトウェアに接続する方が簡単です。調整のために両側でレポートを実行できると、常に便利です。

于 2010-03-30T12:30:28.600 に答える