顧客は多くの購入をすることができますが、そのアイテムを購入できるのは1回だけですが、同じアイテムを最大10人の他の顧客が購入できます。これをデータベース設計に実装する方法はありますか、それともアプリケーション側で実行する必要がありますか?
質問する
48 次
1 に答える
1
これはおそらくDBに実装できますが、それは悪い考えです。理由:
- DBは、データの使用を管理するビジネスルールを表すのではなく、データを表すためにあります。データ表現をビジネスロジックから分離しておくと、必要に応じて新しいデータベースに切り替えるなど、より柔軟に対応できます。
- データをDBに出し入れするコードは、これらのルールに違反しようとする可能性があるため、最初にオプションが顧客に提示されないようにするか、適切にフォーマットされたエラーを表示する必要があります。これらの状況はどちらも、データベースに表示されるビジネスルールをコードが知っている必要があるため、そもそもそれらをDBに配置しても意味がありません。コードに一度書くだけです。
1つの解決策は、購入を進めることができるかどうかを制御するある種の購入マネージャーオブジェクトを作成し、ビジネスロジックをすべて1か所にカプセル化することです。
于 2012-07-03T10:40:49.307 に答える