我有下列表格
create table users
(
id_user int(9) AUTO_INCREMENT primary key,
email varchar(64)
);
create table friendships
(
id_friendship int(9) AUTO_INCREMENT primary key,
id_friend1 int(9),
id_friend2 int(9),
FOREIGN KEY (id_friend1) REFERENCES users(id_user),
FOREIGN KEY (id_friend2) REFERENCES users(id_user),
UNIQUE(id_friend1,id_friend2)
)
我想避免两个用户之间有两次相同的友谊。
但我仍然可以像这样把同样的友谊插入两次:
INSERT INTO friendships( id_friend1, id_friend2) VALUES (1,2)
INSERT INTO friendships( id_friend1, id_friend2) VALUES (2,1)
对我来说(1,2)和(2,1)是相等的,我想避免它。我怎样才能做到?
最佳答案
你可以按一定的顺序写那些身份证。例如,在插入之前,请确保较小的id进入左侧列,较大的id进入另一列。
在你的例子中总是像:
INSERT INTO friendships( id_friend1, id_friend2) VALUES (1,2)
永远不要像这样:
INSERT INTO friendships( id_friend1, id_friend2) VALUES (2,1)
因为id 2大于id 1。
希望有帮助!
关于mysql - MySQL友谊模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33018426/