【问题标题】:Where to put business logic? [closed]业务逻辑放在哪里? [关闭]
【发布时间】:2011-10-03 21:40:54
【问题描述】:

正如标题所暗示的,我正在思考我的应用程序中的位置以放置一些业务逻辑,并且会对一些意见感兴趣。这是一个简单的应用程序,可以从 Web 下载页面并将它们存储在 sqlite 数据库中。

业务逻辑规定应用程序只能为特定 URL 存储一个条目。我已经设置了数据库,因此 URL 必须是唯一的,并且目前依靠它来执行逻辑。 IE。如果尝试插入已存储的网页,则从数据库返回错误代码并通知用户。

但是,我不禁觉得“应用层”(java 代码)也应该知道这条规则——为此依赖 sql 错误代码感觉不对。

我想我有三个选择:

1 让数据库强制执行逻辑

2 让应用层强制执行逻辑并删除数据库上的唯一约束

3 在两个地方都有逻辑

第 2 项对我来说是最不理想的,因为数据库无法控制其自身的完整性。 No 3 需要一些重复,但意味着相同的数据库可以在其他应用程序中使用并且其完整性将保持不变。

很想听听对此的一些看法。

提前致谢, 巴里

【问题讨论】:

    标签: sql database logic


    【解决方案1】:

    应用层应该强制执行逻辑。这对设计来说更容易。数据库做数据,业务逻辑层(应用层)做逻辑。保持分离并使您的生活更简单,因为当您需要更改数据时,您会在数据库中更改它,并且任何逻辑更改都会在应用程序层中更改。这是一个备受争议的话题,因此请准备好收到不同的答案。

    【讨论】:

    • 感谢您的回答 - 看起来您来得正是时候!
    • 是的,有些人会将其标记为不具建设性,但问题是他们要么认为这是基本的,要么过于固执己见而无法有所作为。我个人就是这样做的,但有人告诉我数据库中的逻辑很好,但我猜每个人都有自己的逻辑。分开事物更容易。
    • 我也花了很长时间才在手机上输入:-|
    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    相关资源
    最近更新 更多