多属性数据库设计混乱



嗨,亲爱的社区成员我需要帮助设计一个简单的数据库。这是一个学生和学校的数据库。同一所学校有多个学生,一个学生可以隶属于多所学校。我想知道最好的方法是什么。

示例场景:用户john以高中的身份进入BI学校,以大学的身份进入MIT,用户harry以大学的形式进入MIT。

我们可以采用的一种方法是:我们可以有一个数据库表

用户表

+--------+-------+-----------+|usr_id |名称|学校id|+--------+-------+-----------+|7|john|1||7|john|2||6|哈利|1|+--------+-------+-----------+

学校餐桌

+-----------+-----------+|school_id |名称|+-----------+-----------+|1|MIT||2|BI学校|+-----------+-----------+

并使用school_id作为用户表中的外键。

另一种方法是:

用户表

+--------+-------+|usr_id|名称|+--------+-------+|7 |约翰||7 |约翰||6|哈利|+--------+-------+

学校餐桌

+-----------+-----------+|school_id |名称|+-----------+-----------+|1|MIT||2|BI学校|+-----------+-----------+

学校用户表

+----+---------+-----------+|id |用户id |学校id|+----+---------+-----------+|1|7|1||2|7|2||3|6|1|+----+---------+-----------+

哪种方法最好?我们可以在这里尝试其他方法吗。

根据规范化规则,你有一种多对多的关系(一个学生可以上一所或多所学校,一所学校可以有一个或多个学生)第二种方法是正确的。

更多信息请点击这里StackOverflow-简体中文规范化

最新更新