【发布时间】:2016-11-11 22:00:27
【问题描述】:
假设我有两张表,一张使用外键存储汽车,另一张参考表存储品牌。有什么更好的做法...创建一个枚举并将汽车属性设为枚举类型,或者从表中加载品牌对象列表?
乍一看,我认为从表中加载品牌会更好,因为如果添加了新品牌,则不需要更改代码(对枚举)。但从性能的角度来看,每次我需要找出所有可能的品牌(例如在验证中)时,我都必须调用数据库,这可能会很昂贵。
有什么好的做法?
`Car {
int SerialNumber;
(int or enum?) BrandId;
string Owner;
DateTime Year;
}`
`(class or enum?) Brand {
int Id;
string Name;
}`
【问题讨论】:
-
您是否使用任何 ORM,例如 EntityFramework?
-
当您需要添加新品牌而不是更多的 sql server 行程时,计算“重新安装”软件的成本。
-
您在为验证品牌进行数据库查询时是否真的存在性能问题?那么,如果您想在源代码中保留数据硬编码,那么数据库的目的是什么?使用数据库,只有当你有性能问题(我怀疑)你才开始考虑另一种方法
-
@botond.botos 我自己编写 sql 查询,但可能会切换到 ORM。