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