将用户与多个其他用户相关联

时间:2012-08-12 09:42:55

标签: mysql database

我正在将我的C ++程序连接到MySQL服务器,而且我有点困难。

每个用户都有一个联系人/朋友列表(当然)拥有其他用户。我不确定如何将用户与数据库中的其他用户实际关联。什么数据类型可以用于这样的任务?

我唯一能想到的可能就是让一个文本字段的数字用空格分隔,并在每次用户连接时解析它。但由于某种原因,这对我来说听起来非常不对,所以我不确定。

你能推荐什么?谢谢。

1 个答案:

答案 0 :(得分:1)

  

我唯一能想到的可能就是让一个文本字段的数字用空格分隔,并在每次用户连接时解析它。但出于某种原因,这对我来说听起来非常错误

这听起来对我来说也是一个坏主意。

你想要多对多的关系:

contact
user    friend
1       2
1       3
1       5
2       4
3       1

请注意,在联系人列表中,您可能希望为每个联系人列表条目存储其他属性。例如,用户可能希望更改在他们自己的联系人列表中显示的名称。例如,如果用户1想要将用户3的名称显示为“foo”,则表格可能如下所示。

contact
user    friend   displayName
1       2        NULL
1       3        'foo'
1       5        NULL
2       4        NULL
3       1        NULL

此处NULL表示用户尚未为其联系人指定首选显示名称,因此应显示联系人姓名。