我正在编写一些存储过程来创建表和添加数据.其中一个字段是指示百分比的列.该值应为0-100.我开始想,"这方面的数据验证应该在哪里进行?一般来说,数据验证应该在哪里进行?是逐案进行的吗?"
我突然想到,虽然今天我决定0-100是百分比值的有效值,但明天我可能会决定任何正值都是有效的.所以这可能是一条商业规则,不是吗?业务规则是否应该在数据库级别实现?
只是想寻求指导,我们这里已经没有dba了.
我正在编写一些存储过程来创建表和添加数据.其中一个字段是指示百分比的列.该值应为0-100.我开始想,"这方面的数据验证应该在哪里进行?一般来说,数据验证应该在哪里进行?是逐案进行的吗?"
我突然想到,虽然今天我决定0-100是百分比值的有效值,但明天我可能会决定任何正值都是有效的.所以这可能是一条商业规则,不是吗?业务规则是否应该在数据库级别实现?
只是想寻求指导,我们这里已经没有dba了.
通常,我会在多个地方进行验证:
我使用数据库验证作为最后手段,因为数据库旅行通常比上面讨论的两个验证更昂贵.
我绝对不是说"不要将验证放入数据库",但我会说,不要让它成为您放置验证的唯一位置.
如果您的数据由多个应用程序使用,那么最合适的位置应该是由多个应用程序使用(应该)的中间层.
当您开始根据业务规则考虑整个应用程序时,您在业务规则方面的要求将呈现出完全不同的维度.如果验证的问题足够小,那么就在各个地方进行验证,而不是构建一个集中的业务规则系统.如果它是一个相当大的系统,那么你可以为它研究一个业务规则引擎.