0

顧客は多くの購入をすることができますが、そのアイテムを購入できるのは1回だけですが、同じアイテムを最大10人の他の顧客が購入できます。これをデータベース設計に実装する方法はありますか、それともアプリケーション側で実行する必要がありますか?

4

1 に答える 1

1

これはおそらくDBに実装できますが、それは悪い考えです。理由:

  • DBは、データの使用を管理するビジネスルールを表すのではなく、データを表すためにあります。データ表現をビジネスロジックから分離しておくと、必要に応じて新しいデータベースに切り替えるなど、より柔軟に対応できます。
  • データをDBに出し入れするコードは、これらのルールに違反しようとする可能性があるため、最初にオプションが顧客に提示されないようにするか、適切にフォーマットされたエラーを表示する必要があります。これらの状況はどちらも、データベースに表示されるビジネスルールをコードが知っている必要があるため、そもそもそれらをDBに配置しても意味がありません。コードに一度書くだけです。

1つの解決策は、購入を進めることができるかどうかを制御するある種の購入マネージャーオブジェクトを作成し、ビジネスロジックをすべて1か所にカプセル化することです。

于 2012-07-03T10:40:49.307 に答える