我刚才在这个网站上被告知,与多对多(在我的情况下是一个facebook-ish“友情”系统)的唯一方法是做这样的事情:
uid(PK) friend_id
4 23
4 20
4 54
32 20
32 89
这不会给我留下许多相同的主键(我相信这是不可能的?) 如果我不能将uid设置为PK,我怎样才能快速搜索表格?必须有办法用PK来逃避这一点。
谢谢!
答案 0 :(得分:3)
使其成为复合键
PK =(uid,frield_id)
答案 1 :(得分:2)
如果您有多对多的关系,则可以在创建具有UID和Friend_ID的双主键的位置之间开发一个表。这样,应该只有一对UID / Friend_ID的一个实例。
答案 2 :(得分:2)
使用uid和friend_id的组合作为主键。
答案 3 :(得分:1)
使它们都成为主键的一部分。
但是,你也想在uid上创建索引(可能还有friend_id),这样搜索速度就不会受到影响。
答案 4 :(得分:1)
您只需制作复合主键:
create table fbook (uid int, friend_id int, primary key(uid, friend_id));