假设我有一个subscribers
表,每个用户都有一行像这样..
id name subscribers
1 user1 user2,user3,user4
2 user2 user4,user5,user3
3 user3 user1,user6,user2 etc...
我想要做的是,运行像这样的选择语句..
SELECT subscribers from table where id = '1'
..然后,限制向我展示的订阅者数量
即如果我将其限制为2,则只有SELECT "user2,user3"
table.subscribers WHERE id=1
我知道我可以用PHP选择所有内容后限制它但我不想遇到性能问题,如果每列中有数百万个用户名......
此外,这是设置subscibe/follow
系统的最佳结构吗?还是有更好的方法?
答案 0 :(得分:7)
您在同一字段中存储多个值。这很糟糕!
您需要第二个表来表示订阅 - 它会有一个列userid
和subscriberuserid
(或类似的东西)。
对于用户拥有的每个订阅者,此表中将记录该用户的用户ID(以及其订阅者的用户ID)。
然后,你可以限制你的心灵内容:
SELECT subscribers.subscriberuserid
FROM subscribers
WHERE userid = 1
LIMIT 2
答案 1 :(得分:0)
我认为多对多关系会更方便,你可以轻松限制你的记录数......