【发布时间】:2011-10-03 21:40:54
【问题描述】:
正如标题所暗示的,我正在思考我的应用程序中的位置以放置一些业务逻辑,并且会对一些意见感兴趣。这是一个简单的应用程序,可以从 Web 下载页面并将它们存储在 sqlite 数据库中。
业务逻辑规定应用程序只能为特定 URL 存储一个条目。我已经设置了数据库,因此 URL 必须是唯一的,并且目前依靠它来执行逻辑。 IE。如果尝试插入已存储的网页,则从数据库返回错误代码并通知用户。
但是,我不禁觉得“应用层”(java 代码)也应该知道这条规则——为此依赖 sql 错误代码感觉不对。
我想我有三个选择:
1 让数据库强制执行逻辑
2 让应用层强制执行逻辑并删除数据库上的唯一约束
3 在两个地方都有逻辑
第 2 项对我来说是最不理想的,因为数据库无法控制其自身的完整性。 No 3 需要一些重复,但意味着相同的数据库可以在其他应用程序中使用并且其完整性将保持不变。
很想听听对此的一些看法。
提前致谢, 巴里
【问题讨论】: