最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

用于存储用户的多个爱好的关系数据库结构

运维笔记admin10浏览0评论

用于存储用户的多个爱好的关系数据库结构

用于存储用户的多个爱好的关系数据库结构

我正在尝试向一些用户注册基本信息,例如用户名/电子邮件,密码以及他们各自的兴趣爱好,例如阅读,运动,跳舞等,然后在具有相似兴趣爱好的展示用户上注册。当前架构如下所示。

Users

 - id 
 - email 
 - password 
 - country 
 - hobbies_id
hobbies

 - id 
 - user_id 
 - sports(values true/false) 
 - reading(values true/false)
 - dance(values true/false)

每个爱好都在爱好表中作为一列放置。

如果将业余爱好的数量从3个增加到20个,最优化的方案是什么?另外,有人可以通过查询来帮助我选择具有相似兴趣/爱好的用户吗?例如,如果John喜欢读书和运动,而Kim喜欢运动和跳舞,那么他们会将运动作为共同的爱好。

提前感谢。

回答如下:

在关注@Madhur Bhaiya的评论之后,我将用3个表解决此问题:

users
 - id 
 - email 
 - password 
 - country 

hobbies
 - id
 - name (sports, reading, dance, ...)

user_hobbies
 - user_id
 - hobbie_id

users表是用户的主表(每个用户一个记录)。>>

hobbies表是爱好的主表(每个爱好一个记录)。创建新兴趣爱好时,您无需创建新列,只需添加新行。

[user_hobbies表将用户映射到爱好:它包含每个user_id/hobbie_id元组的一条记录。

发布评论

评论列表(0)

  1. 暂无评论