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

Mysql 用于存储用户配置文件的更好的数据模型是什么?,mysql,sql,database,database-design,Mysql,Sql,Database,Database Design,我正在研究关系数据库的数据模型,我必须在其中存储用户信息以及用户档案,如教育水平、个人兴趣、爱好等。类似于大多数社交网站或任何其他允许您构建档案的系统 我无法决定是将所有这些信息存储在一个Users表中,还是将其分为两个表 若我把它分成两个表,我会有一个Users表,它只存储UserID、Name、e-mail、DOB和gender UserProfiles将存储与概要文件相关的其余内容,与Users表共享相同的用户ID 如果一个用户有多个配置文件意味着一对多关系,那么我建议您创建两个表,一个是

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

我无法决定是将所有这些信息存储在一个Users表中,还是将其分为两个表

若我把它分成两个表,我会有一个Users表,它只存储UserID、Name、e-mail、DOB和gender

UserProfiles将存储与概要文件相关的其余内容,与Users表共享相同的用户ID

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

  • 如果一个用户只有一个配置文件,那么您应该只创建一个表,其中包含用户和配置文件上的两个属性


  • 更多的模块化设计,这将允许更多的灵活性和控制。我唯一建议将数据保存在单个表中的时间是,如果您计划频繁查询相同的数据


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

    我认为,为了决定选择哪种数据模型,只需看看中介绍的一些类似的需求数据模型

    特定于您的用户配置文件数据模型要求

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


    您的站点/数据库将有多大/多复杂?谢谢!棒极了。我会查出来的。外部资源的链接总是很好的,但是你能总结一下你答案的内容吗?有时外部链接消失或更改,您的答案将不再有用。单个用户只有一个配置文件。我主要关心的是搜索的响应时间。假设我有“最喜欢的音乐”或“最喜欢的书”等文本字段。如果用户希望搜索这些字段以找到匹配项,那么是否最好将这些项存储在单独的表中(例如UserID,FavoriteMusic[varchar(2000)]?