У меня есть следующие таблицыMySQL дружбы схемы
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) равны, и я хочу, чтобы избежать этого. Как я могу это достичь?
Я бы отказался от логики. Когда вы вставляете один, ВСЕГДА вставьте другой. У вас есть маленький флаг, обозначающий «истинный». – Strawberry