【问题标题】:Philosopher issue about business rules [closed]关于业务规则的哲学家问题[关闭]
【发布时间】:2012-03-16 09:31:15
【问题描述】:

有一个人认为业务规则可能只存在于应用程序中的一个位置,因此对于我们的团队和项目来说,这意味着在我们的关系数据库中没有外键并且约束。该项目中的业务规则被放入实体(DAO)中。请给出真正激烈的论据来改变他的想法。

【问题讨论】:

  • 这种观点显然是愚蠢的,应该受到公众的嘲笑。每个选择都不是商业规则。那个人是 Rete 规则引擎推销员还是什么的?
  • 你不需要改变他的想法。你只需要解雇他。
  • 我只是开发人员,所以我不能解雇这个人)他是这个项目的负责人之一。
  • 放弃数据库中的参照完整性并不是最好的解决方案,特别是如果该数据库是事务性的和共享的。每个使用它的应用程序都必须复制参照完整性可以提供的功能。那没有意义。像所有教条一样,这不能替代真正的知识和诚实的思考。
  • @duffymo,感谢您的评论,我得到了一个很好的论点“交易可能会出现一些问题,甚至不是'可能'而是'必须'。”

标签: architecture business-logic


【解决方案1】:

外键不是业务规则。

它们用于确保数据库在其表之间具有正确的关系。没有约束只是意味着数据库可以包含垃圾数据(可能会随着时间的推移而增长)。

程序员不能保证代码没有错误,因此无法确保所有数据都有效。

单个表不代表业务/域模型。一张或多张桌子可以。因此,业务/域模型和数据库表之间不是一对一的关系。因此,业务规则并不能保证 db 包含有效数据。

【讨论】:

  • 我理解,我认为忽略设置外键的可能性是错误的,约束具有一致的数据库。
  • 我知道。你想要争论。你得到了他们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-07
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多