私はソーシャルネットワーキングサイトの私のバージョンになる予定のデータベースを構築しています。さて、Facebookのように友達関係を保存したいと思います。私はこれにMySQLを使用していることに言及する必要があります。
だから私はこのようなことをすることを考えています:
UserFriends
(
UserFriendID SOME_DATA_TYPE NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserID BIGINT(20) UNSIGNED NOT NULL,
FriendID BIGINT(20) UNSIGNED NOT NULL -- This is basically the same as UserID
)Engine=InnoDB;
今、私はこのテーブルの主キーに使用するある種のデータ型を探しています。これは、大量のレコードがあると予想し、ある種のインデックス付けであらゆる種類の検索を高速化することを望んでいるためです。私が記録で行うかもしれないこと。友達提案機能など。
私は提案を受け入れています。私の意見では、別のオプションですが、管理がはるかに難しいのは、ユーザーごとに個別のテーブルを動的に作成し、その中に友達を保存することです。ただし、これはコードごとに管理するのは悪夢のようなものです。