2

我正在将我的 C++ 程序连接到 MySQL 服务器,但我遇到了一些困难。

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

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

你能推荐什么?谢谢你。

4

1 回答 1

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意味着用户没有为其联系人指定首选显示名称,因此应显示联系人的姓名。

于 2012-08-12T09:48:33.817 回答