質問

このサイトでしばらく前に、多対多(私の場合はFacebookっぽい「フレンド」システム)を使用する唯一の方法は次のようなことであると言われました:

uid(PK) friend_id
4       23
4       20
4       54
32      20
32      89

これにより、多くの同一の主キーが残されます(これは不可能だと思いますか?) また、uidをPKとして設定できない場合、どのようにしてテーブルをすばやく検索できますか? PKでこれを回避する方法が必要です。

ありがとう!

役に立ちましたか?

解決

多対多の関係がある場合は、UIDとFriend_IDを一緒に使用してデュアル主キーを作成するテーブルを作成できます。そのようにすると、UID / Friend_IDのペアのインスタンスは1つだけになります。

他のヒント

複合キーにする

PK =(uid、frield_id)

主キーとしてuidとfriend_idの両方の複合を使用します。

両方を主キーの一部にします。

ただし、検索速度が低下しないように、uid(および場合によってfriend_id)にもインデックスを作成する必要があります。

複合主キーを作成できます:

create table fbook (uid int, friend_id int, primary key(uid, friend_id));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top