【问题标题】:How to implement followers for users, as in twitter如何为用户实现关注者,如在 twitter 中
【发布时间】:2011-08-28 03:59:13
【问题描述】:

我有一个使用 php 和 mysql 制作的社交网络。我试图弄清楚如何为每个用户制作追随者。我应该在 mysql 中创建一个包含每个人的关注者列表的表,并为他们关注的每个人创建一个表吗?这应该如何工作?我应该如何设置我的数据结构?请帮忙。

【问题讨论】:

    标签: php social-networking mysql-management mysql


    【解决方案1】:
    Table `followers`
    
    id
    user_id
    follows_id
    

    如果用户关注另一个用户,请将他们的 id 添加到此表中,其中user_id 是关注的用户,follows_id 是他关注的用户。

    【讨论】:

      【解决方案2】:

      您应该查看ERD。你是对的。您有一张包含用户的表格。用户与用户之间存在多对多关系,因此请创建一个包含该关系的表。它应该至少有两个字段; “user”和“follower”,你存储各自实体的id。

      【讨论】:

      • 起初我以为我在点击那个链接时要发疯了。然后我意识到我的精神错乱是无关的......
      • 也许您可以为我使用 UML?也许是一些不错的状态机?
      【解决方案3】:

      这当然是多对多的关系,我会使用复合主键。

      我不会使用显式的 id 列,而是将 user_id 和 follower_id 的组合列作为 follower 表的主键。这样可以避免任何条目被重复。

      我还添加了一个外键约束,这样如果用户在用户表中被删除,那么所有用户条目都将从关注者表中删除;

      create table followers
      (
           user_id int unsigned not null, 
           follower_id int unsigned not null, 
           primary key(user_id,follower_id), 
           foreign key(user_id) references users(id) on delete cascade on update cascade
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-23
        • 2020-10-02
        • 2012-07-20
        • 1970-01-01
        • 2014-06-18
        • 2018-07-02
        • 2014-08-08
        • 2017-09-08
        相关资源
        最近更新 更多