我对正常化有疑问。
我有三张桌子:
rule_set (id, name, creation_date, descrtiption)
input_scenario (id, name, creation_date, bitmask, description)
output (id, rule_set_id, input_scenario_id, key, value), fk(rule_set_id to rule_set.id, input_scenarion_id to input_scenario.id);
我的想法是我配置了一些输入方案。然后,每当创建新的rule_set时,对于每个输入场景,都会创建一系列输出。
这个架构工作正常,但为了规范化,我怀疑是否应该创建一个映射表:
mapping (id, rule_set_id, input_id), fk (rule_set_id to rule_set.id, input_id to input.id)
然后我的输出表就像:
output(id, key, value, mapping_id), fk (mapping_id to mapping.id)
什么是最佳做法?为什么?