代码之家  ›  专栏  ›  技术社区  ›  Chaitanya

数据库设计-朋友活动

  •  0
  • Chaitanya  · 技术社区  · 14 年前

    目前我正在设计一个小型的Twitter/Facebook系统,用户应该可以在其中看到他的朋友的最新活动。

    我正在使用ASP.NET和MySQL数据库。

    我的友谊表如下:

    | friendshipid friend1 friend2已确认|

    上表中的friend1和friend2是用户ID。

    用户活动表设计如下:

    |活动ID用户ID活动日期|

    现在,我正在寻找为用户查询最近50个朋友活动的最佳方法。

    例如,假设Tom登录系统,他应该能够在所有朋友中看到最近50个活动。

    任何关于最佳实践、查询或任何信息的指针都会受到赞赏。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Mike Lue    14 年前

    friendshipid, userid, friendid, confirmed

    SELECT act.*
    FROM Activities AS act
        INNER JOIN
        Friendships AS fs
        ON fs.friendid = act.userid
            AND fs.user_id = 'logon_user_id'
            AND confirmed = TRUE
    ORDER BY act.dated DESC
    LIMIT 50;
    

        2
  •  2
  •   Philip    14 年前

    SELECT activities.* 
    FROM Activities 
        INNER JOIN Friendships ON userid = friend1 OR userid = friend2 
    WHERE activity.userid != [my own id]
        AND confirmed = TRUE
    LIMIT 50;