【发布时间】:2014-03-17 00:31:18
【问题描述】:
我有一个相册系统,人们可以上传照片并与其他用户互动。我使用 mySql 和 Redis 来处理流量和存储数据。
在我的系统中,用户可以关注其他用户,如照片、评论和上传新照片。
在这种情况下,我想在他们的墙上显示用户关注的所有事件(如 facebook 时间线)。
例如,我关注用户 30、40、50、60、70 和 80 个 id。每当他们添加新照片时,我都希望在我的墙上看到它们。问题是这样的:
用户 30(他的 id)添加了 3 张新照片,我将此信息添加到 photoevents:30:photoids -> [55,56,57]。 它在我的墙上是这样看到的:
User 30 added 3 new photos [55,56,57]
然后用户 40 添加了 2 张新照片 [5,6] 它在我的墙上是这样看到的:
User 40 added 2 new photos [5,6].
User 30 added 3 new photos [55,56,57]
然后用户 30 又添加了 2 张照片 [58,59]
应该看什么?
这样
User 30 added 5 new photos [55,56,57,58,59].
User 40 added 2 new photos [5,6]
或者
User 30 added 2 new photos [58,59]
User 40 added 2 new photos [5,6].
User 30 added 3 new photos [55,56,57]
对于第二种情况,我怎么知道墙主看到的最后一张照片是什么?根据什么,我应该决定“新”号码。哪一个是合理的做法;将这些数据保存在服务器端(关注者的整个“最后一次看到”组合(例如:用户 50 等最后一次看到的用户 30 的 id)或在客户端处理这个
【问题讨论】:
标签: database-design data-structures architecture redis social-networking