Я новичок в SQL и с Postgres я пытаюсь создать систему друзей, используя три таблицы.Таблица пользователей, таблица запросов на добавление в друзья и таблица друзей, в которой будут храниться отношения пользователей после их принятия.
Таблица запросов на добавление в друзья
id
sender_id
recipient_id
Таблица друзей
id
user_id
friend_id
В настоящее время я пытаюсь написать несколько sql таккак только запрос на добавление в друзья принят, соответствующая запись запроса в таблице запросов на добавление в друзья удаляется, затем две записи вставляются в таблицу друзей для дружбы.Один для каждого пользователя.Итак, АБ и БА.
Я пробовал запросы по порядку, но мне не повезло.
WITH friend_request AS (
DELETE FROM friend_requests
WHERE id = friendrequestid
RETURNING sender_id, recipient_id
)
INSERT INTO user_friends (user_id, friend_id)
(SELECT sender_id, recipient_id FROM friend_request),
(SELECT recipient_id, sender_id FROM friend_request);
Есть ли правильный способ сделать две вставки так, как я пытаюсь?Или я неправильно к этому подхожу?
Заранее спасибо.