sql – 我应该在查找表中使用代码吗?
我正在使用Orable数据库,我正在添加几个查找表.
一般的问题是查找表是否应包含代码和描述,代码是FK返回主表,或者查找表是否只包含描述并且FK是否返回主表. 我在争论代码/描述对.我觉得如果我有type = Contractor和code = CN一个存储过程应该说type =’CN’而不是只有type = Contractor而没有代码并在存储过程中说这个:where type =’Contractor’因为如果我想显示如何:总承包商而不是承包商.然后我必须改变存储过程.我觉得我不应该这样做. (更改存储过程需要在dev中重新编译,迁移到测试,由客户端重新测试,以及迁移需要经历涉及两周等待期的变更控制过程的prod;而修改表中的记录则不需要任何这个的) 我的数据建模者只想使用描述.他的主要论点是,它需要一个无关紧要的联盟. 它应该以哪种方式完成?如果应该完成代码/描述方式,我该如何说服数据建模者? 谢谢! type_cd type_dsc CN Contractor IN Inspector 解决方法总结所有答案,我认为查找表有四种选择:备选方案1: 备选方案2: 备选方案3: 备选方案4: 主键列将位于主表中,顶部有外键约束. 每种选择的一些特征: 备选方案1: 备选方案2: 备选方案3: 备选方案4: 个人意见: 我会看看我打算如何使用主表和查找表.哪些查询很重要,必须高效运行?这些价值会改变吗? 我个人的选择是替代2或4.如果我绝对确定代码值永远不会改变,我会使用替代2.这很少见.国家代码更改,社会安全号码更改.货币代码改变,等等.因此,在大多数情况下,我会选择替代4.我不会太担心额外的连接,特别是因为查找表是一个小表. 但是:选择一个符合您要求的替代方案. 当您了解替代方案的更多特征时,请随时编辑文本. 问候,抢. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |