Database design 何时和何时不需要映射表?
我对正常化有疑问 我有三张桌子:Database design 何时和何时不需要映射表?,database-design,relational-database,Database Design,Relational Database,我对正常化有疑问 我有三张桌子: 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_sce
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);
我的想法是配置了一些输入场景。然后,无论何时创建新的规则集,都会为每个输入场景创建一系列输出
该模式运行良好,但为了规范化起见,我怀疑是否应该创建如下映射表:
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)
最佳实践是什么?为什么?规范化涉及识别和维护关系/表中的函数依赖项和连接依赖项。但是,您没有提供任何依赖项。如果我根据您的表和列名进行假设,我会说您的映射表只是添加了一点不必要的间接性。但我可能解释错了。请列出您的依赖项以获得可靠答案。使用外键更新以获得更好的理解。我建议您从阅读开始。和规范化。