SQL查找 我需要构建一个允许多个'匹配'可能性的查找表 即 根据来自俄亥俄州或佛蒙特州的传入文本查找文本代码,以后可能会有其他人。我还需要历史记录,所以如果俄亥俄代码仍然可以在日期之前找到,而不会干扰当前的活动代码。
txtCode | OhioCode | VACode| … future expansion
100A | 567BR | Thing |
100B | 4FJEU | 54DS |
我可以使用单个表,但这似乎不是很有效。有多个表,每个州一个,未来的扩展似乎更复杂,但也许这是要走的路?我可以使用表来查找查找表吗?
那么做这样的事情的最佳做法是什么?
答案 0 :(得分:2)
标准化方法看起来更像这样。我不太了解的是你的“当前活动代码”的概念。不确定这与发布的数据有什么关系。
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
'App\User' => 'App\Policies\UserPolicy',
'App\Post' => 'App\Policies\PostPolicy',
];
答案 1 :(得分:1)
什么是txtCode? p>
执行此操作的最标准方法是使用生效日期时间戳进行标准化查找。
Txt_Code | State_Code | State_Value | Rec_Strt_Dt | Rec_End_Dt | Current_Flag
100A OH 567BR 12/1/2000 12/03/9999 N
100A OH NewValue 12/3/2000 12/31/9999 Y
100A VA Thing 12/1/2000 12/31/9999 Y
100B OH 4FJEU 12/1/2000 12/31/9999 Y
100B VA 54DS 12/1/2000 12/31/9999 Y
这确实取决于您将要运行的查询类型。 (并且您可能希望时间戳在生效日期偏移1秒)
然后你可以索引state_code,txt_code + state_code,current_flag等... 取决于你正在做什么。