【发布时间】:2022-01-23 11:06:03
【问题描述】:
我有一个 SQL 表 Users,每个用户都有多个教育机构。例如。约翰可能在 2019 年上过哈佛,在 2020 年上过牛津,在 2021 年上过剑桥。
由于这是一对多关系,最明显的解决方案是创建第二个表 - UserEducation,它引用用户 ID。
但是,我觉得这种方法有点不对,因为用户的教育机构直接是他们个人资料的一部分,而不是一组新数据。有没有其他方法可以做到这一点(以某种方式保持每个用户个人资料单独条目的想法)或者我做得很好?
【问题讨论】:
-
查找多对多关系,您可能需要一个包含学校的表,一个包含用户的表和一个包含它们之间关系的最后一个表。一个用户可以有很多学校,一个学校可以有很多用户
-
我曾考虑过,但我真的不想保存有关学校的数据,因为这样我就必须基本上保存世界上所有的学校
-
那么,OneToMany 是要走的路,你走上正轨
-
我认为 UserEducation 完全没问题。您可以将教育数据作为 json/xml 保存在用户表中,但我个人不想这样处理它
-
好的,UserEducation 似乎是正确的选择,谢谢。
标签: mysql database database-design rdbms