数据库内外数据库逻辑的最佳实践。在数据库中保存逻辑?
在实际数据库中保存枚举和其他查找数据的最佳做法是什么?例如,在Web商店中,如果您仍然要编写代码以将数据放入和移出使用此产品信息的表中,则可以保存所有产品。如果您拥有角色(经理,员工等)等用户信息,该怎么办?为角色创建一个查找表是否有意义,或者您的CRUD逻辑是否可以保留所有这些内容?当添加/更新新用户时,CRUD代码可以进行验证吗?
这可能是也可能不是社区维基,如果它需要被标记为好的话。我真的只想了解更多信息并了解其他人在做什么。
编辑:很好的答案。并且共识似乎是肯定的,将约束放在数据库中。所以我的下一个问题是实现这一目标的技术机制是什么。如果我有一个“角色查找”表,我就去添加一个新用户。我怎么说,新用户的角色列必须是该查找中的任何值之一。我知道如何在代码中执行此操作但是执行此操作的SQL机制是什么?答案 0 :(得分:5)
数据库用于强制数据完整性的数据和验证规则。
要回答您的具体问题,是的,我会将用户/角色存储在数据库中。在任何情况下我都不希望更新代码以便将用户添加到系统中。
答案 1 :(得分:4)
数据库是强制执行必须强制执行以确保数据完整性的任何逻辑的地方。仅在应用程序中执行此操作是灾难的处方,数据库不会仅由应用程序更改。
在某种程度上,您需要查找表以确保数据完整性,以便不能添加不属于查找的值。
要回答第二个问题,请查找外键约束。