2012-07-03 22 views
0

客户可以进行多次购买,但只能购买该商品一次,但同一商品可以由最多10个其他客户购买。有没有一种方法可以在我的数据库设计中实现这个功能,还是我在应用程序端必须执行的功能?限制客户购买

+1

这听起来像应该绝对在应用程序端完成的事情。 –

+0

您可以使用[触发器](http://dev.mysql.com/doc/en/triggers.html)在数据库中强制实施该逻辑,但在应用程序中执行此类检查也是明智之举为了您可以提供更好的反馈给用户。 – eggyal

+1

把它放在你的应用逻辑层。 –

回答

1

这可能会在您的数据库中实现,但这是一个坏主意。理由:

  • 您的数据库是代表数据,而不是代表业务规则 管理数据的使用。保持数据表示 独立于业务逻辑,使您可以更灵活,例如通过切换到新的数据库,如果您需要,可以使用 。
  • 将数据 加入和导出数据库的代码可能会尝试违反这些规则,因此您需要 或者阻止将选项首先提供给客户,或者显示 格式错误。这两种情况都需要代码 了解数据库中表示的任何业务规则,因此将它们放入数据库首先要放入 DB没有意义。只需在代码中写入一次即可。

一种解决方案是创建某种采购管理器对象,控制采购是否可以继续,将业务逻辑封装在一个地方。

相关问题