我正在开发一个系统,我有一个用于存储学生语言能力的表来管理这个,我们创建了以下架构:
表STD_LANGUAGE_COMPETENCIES表示关联实体。 STD_LANGUAGE(法语,英语,阿拉伯语......)表与STD_LANGUAGE_SKILL(阅读,口语,写作,教学)之间的多对多关系问题是STD_LANGUAGE和STD_LANGUAGE_SKILL未被系统的普通用户更新(学生)它们是由系统管理员添加的,当我尝试为学生提取语言能力时,体系结构要求我在两个表上进行连接,以获得语言的名称和技能的名称。 无论如何都要优化这个架构。
答案 0 :(得分:2)
如果语言技能是例如:“阅读”,“写作”,“对话”,ecc。,没有名称的限制,没有技能时间和管理客户端模块的限制,你可以直接把描述放在STD_LANGUAGE_COMPETENCE表,并删除外键cstraints,同时保持组合项的技能表分配或搜索(按文本)。
通过这种方式,您可以避免加入..
答案 1 :(得分:0)
如果你有一对多的关系或多对多的关系。您无法避免加入以遵循SQL中的规范化结构。