用于存储用户配置文件的更好的数据模型是什么?

时间:2012-01-03 05:23:54

标签: mysql sql database database-design

我正在研究关系数据库的数据模型,我必须存储用户信息以及用户的个人资料,如教育程度,个人兴趣,爱好等。类似于大多数社交网站所拥有的或任何其他允许您构建个人资料的系统。

我无法确定将所有这些信息存储在一个Users表中,或者将其分成两个表是否更好。

如果我将它分成两个表,我会使用Users表来存储UserID,Name,e-mail,DOB,gender。

UserProfiles会存储与个人资料相关的其他内容,与Users表共享相同的UserID

3 个答案:

答案 0 :(得分:3)

  1. 如果单个用户有多个配置文件意味着一对多关系,那么我建议您创建2个表,一个是用户,另一个是用户配置文件。

  2. 如果一个用户只有一个配置文件,那么您应该只创建一个包含User和profile两个属性的表。

答案 1 :(得分:2)

采用更模块化的设计,这将提供更多的灵活性和控制。如果您打算经常查询相同的数据,我建议将数据保留在单个表中的唯一时间。

有一篇很棒的文章here深入探讨了为什么连接很昂贵。您应该最终根据链接中提供的信息做出决定,但正如我之前提到的,如果您计划经常一起查询这两个表,那么请将数据保存在单个表中。

答案 2 :(得分:1)

我认为,为了决定选择哪种数据模型,只需看看this Datamodel Library中提供的一些类似要求Datamodels。

特定于您的用户个人资料数据模型要求this link may be useful

希望这些链接有用。或者我得到了描述facebook类型数据模型的数据模型图像:

enter image description here