2011-04-19 69 views
3

我想知道你将如何工作一个PHP和MySQL的朋友系统? 我在想,在users表中会有一个标题为friends的柱子,它可以用逗号隔开的其他用户ID保存数据,
例如,1,3,56,3 - 然后爆炸这个和foreach数组?

这会起作用吗?MySQL关系朋友计划?

+1

是[12个字符] – Jakub 2011-04-19 17:41:01

+2

它的工作,但你不应该那样做。为友谊制作一张单独的桌子。 – 2011-04-19 17:42:26

回答

4

不要将它作为以逗号分隔的字符串进行操作,而是将每个朋友关系的user_friends表作为记录。逗号分隔的字符串不会有用的索引或可查询。

+0

当我通过数据库获取朋友循环并检查其中的任何一个是否为当前用户标识时,我会使用两个列,比如'user1'和'user2'吗? – Joshwaa 2011-04-19 17:45:27

6

这是一种方法。
您可能需要考虑为每个朋友创建一个新行。

例如:

朋友ID:1 好友名称:鲍勃

朋友ID:2 好友名称:罗恩

朋友ID:3 好友名称:乔

如果鲍勃与罗恩和乔都是朋友,那么在朋友表中会有2条记录

id user friend 
1 1  2 
2 1  3 

那么,如果乔成了鲍勃朋友,但不是罗恩表将结束是

id user friend 
1 1  2 
2 1  3 
3 3  1 

这给你的灵活性在路上增加在更复杂的查询。

0

重要的例子:

朋友1与朋友2 连接你要查找的USER_ID和friend_id找朋友1

的各界朋友