如何在数据库中存储用户兴趣

 mobiledu2502905463 发布于 2023-02-09 19:27

我正在使用Php/MySQL构建一个站点,我的问题很简单(我希望).在注册过程中,要求用户从大约15的列表中选择他们的兴趣.对于每个用户,将这些存储在数据库中的最佳方法是什么?我应该将兴趣存储在一个单独的表中并有一个连接表来匹配user_id到interest_id吗?

1 个回答
  • 是的,最好保持数据库规范化,以便更容易查询公共信息(即,获得所有具有此兴趣的用户).

    你可以有一个interests兴趣表:

    | iID | iInterest |
    | 1   | Cars      |
    | 2   | Computers |
    

    然后,例如,您的用户表:

    | uID | uName |
    | 1   | John  |
    | 2   | Jake  |
    

    然后你会有一个多对多的关系表,将用户链接到兴趣(UserInterests):

    | uID | iID |
    | 1   | 1   |
    | 1   | 2   |
    | 2   | 2   |
    

    从这里,您可以看到用户John喜欢汽车和电脑,但用户Jake只喜欢电脑.假设您希望获得所有喜欢计算机的用户,您只需将表连接在一起:

    SELECT uName 
    FROM Users 
    INNER JOIN UserInterests ON Users.uID = UserInterests.uID 
    AND UserInterests.uID = 2
    

    2023-02-09 19:28 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有