示例案例:
我们正在使用 SQL Server 构建租赁服务。有关可租用元素的信息存储在表中。每个项目都有一个状态,可以是“可用”、“已租”或“损坏”。不同的状态驻留在查找表中。
项目状态表:
ID名称
1“可用”
2“租用”
3“ splinter ”
除此之外,我们还有一条业务规则,规定每当退回某个项目时,其状态就会从“已租”更改为“可用”。
这可以通过诸如“update Items set state=1 where id=@itemid”之类的更新语句来完成。在应用程序代码中,我们可能有一个映射到 ItemState id:s 的枚举。但是,它们包含硬编码值,可能会导致以后出现维护问题。假设开发人员要更改状态集但忘记修复相关的业务逻辑层......
有哪些好的方法或替代设计来处理此类设计问题?
除了直接答案之外,还欢迎相关文章的链接。
最佳答案
根据我的经验,在这种情况下,您实际上必须进行硬编码,最好使用整数值与查找表的 ID 相匹配的枚举。我认为“1”总是“可用”等等并没有什么错。
关于sql - 处理查找表和相关业务逻辑时摆脱硬编码值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1650309/