mysql - 多对多关系优化

标签 mysql sql erd sql-optimization

我在一个系统上工作,我有一个表来存储学生的语言能力来管理它,我们创建了以下架构:

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

最佳答案

如果语言技能是例如:“阅读”、“写作”、“ session ”等,没有名字的组合,没有技能时间限制,管理客户端模块,你可以直接把描述放在STD_LANGUAGE_COMPETENCE 表,并删除外键约束,同时保留组合项目的技能表以分配或搜索(按文本)。

这样你就可以避免连接..

关于mysql - 多对多关系优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774531/

相关文章:

javascript - 使用 cordova/phonegap 连接到远程数据库

Sql 查询在数据库中查找临时表

sql - 如何与多个 CTE 表进行 UNION?

mysql - SQL:ERD 图 - 数据冗余。

php - Json_encoded 值未更新到数据库

mysql - 如何检查 SQL 表中是否存在一对。约束

c# - 通过存储过程将数据列表返回给 dapper

sql - 映射 1 :1 relationship on a relational schema

database-design - 您应该如何对随时间变化的对象进行建模

mysql - 为什么 mysql 会跳过一些自动递增的 id?