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 に答える