验证 - 数据完整性

时间:2010-05-26 13:54:05

标签: java database

一张表只能存储特定州的10条记录,例如30年以上的10个用户,其他的必须少于30年。这是一项商业规则,因此应予以尊重。如何确保状态?想一想:多个用户访问此表。

明确锁定?

3 个答案:

答案 0 :(得分:1)

要么制造一些丑陋的数据库程序(并且被任何被迫维护它的人永远痛恨),或者只是在商业层中强制执行规则(可能在某些“storeUser(用户用户)”方法中)。如果您在存储用户的代码中有许多不同的位置,那么这将是架构设计中的宝贵教训:)

答案 1 :(得分:1)

这需要一个用于创建和更新操作的业务层方法。可以允许读取和删除。这些同步的添加和创建方法实现业务规则并以错误状态进行响应。

答案 2 :(得分:0)

SIRA_PRISE允许您以代数形式声明该约束,而SIRA_PRISE将为您强制执行约束,而无需编写任何代码。

或者,第二个最好的选择,你可以在一些SQL系统中编写触发代码,并希望你没有犯任何错误/忽略任何东西,但你的机会不太好。 “数据库专业人员的应用数学”有一整章专门讨论这个问题。相当于一些aha-erlebnisses。

或者,第三个最佳选项,您可以编写应用程序代码来强制执行您的约束,并希望没有人会让另一个应用程序对您的数据库进行更新并忽略约束(其可能性非常高,因为,老实说,你可以在哪里找到你的约束存在的适当位置,更不用说正式规范?)。在ER和UML中我都没有看到任何出色的设施。