2016-08-04 89 views
1

我工作的一个系统,我哈瓦表用于存储学生的语言能力,以管理这个我们创建了以下建筑上: 多对多的关系优化

表STD_LANGUAGE_COMPETENCIES代表着关联实体。在STD_LANGUAGE(法语,英语,阿拉伯语...)表和STD_LANGUAGE_SKILL(阅读,说话,写作,教学)之间存在多对多关系的问题是STD_LANGUAGE和STD_LANGUAGE_SKILL不是由系统的普通用户更新的( 学生),他们是由系统管理员添加的,当我尝试为学生提取语言能力时,体系结构要求我在两个表上进行连接,以获取语言名称和技能名称。 有无论如何优化这个模式。

+0

您是否考虑创建视图? –

+0

我正在构建一个API –

回答

2

如果语言技能是例如:“阅读”,“写作”,“对话”等等,没有名称隐藏,没有时间限制的技能和管理客户端模块,您可以直接将描述在STD_LANGUAGE_COMPETENCE表中,并删除外键约束,同时保留组合项目的技能表以分配或搜索(通过文本)。

这样就可以避免一个加入..

0

如果你有一对多的关系或多对多的关系。您无法避免连接遵循SQL中的规范化结构。