我有一个查找表,它是id-value对的主表。此表用于存储静态数据,如:所有国家/地区,货币等。
所以其他表格有currency_id,country_id。
我有一个复杂的sql,它返回一堆这样的id。要获得实际值,有两个选项:
1.使用查找表的连接
2.在项目中,前一个开发人员实现了一个功能,即他有一个国家的枚举类,一个货币的枚举类等。
所以他只是从sql结果集中获取id,并使用enum类查找该值。他认为这是更快的。
我当然可以通过设置更快,sql join或enum查找的开始和结束时间来确定 但是,如果不这样做,是否有可能预测哪一个更快?
答案 0 :(得分:5)
有两个原因:
注意:
您不应该在“One True Lookup table”(OTLT)反模式中拥有一个查找表。您只在表中存储一个实体。
(2011年12月添加):
在DBA.SE上,不支持枚举或OTLT: