MySQL - двусторонняя проверка запросов

Я реализуюДобавить в друзья" в моем веб-приложении, чтобы пользователи могли добавлять других пользователей в качестве друзей.

У нас есть 2 таблицы:tbl_users а такжеtbl_relations, tbl_users имеют уникальный идентификатор для зарегистрированных пользователей, а tbl_relations будет хранить пользователей, которые являются друзьями, например, некоторые строки в tbl_relations:

id     user_id_1     user_id_2
1      4             6
2      4             8
3      8             23
4      12            84
5      3             4
...

В приведенных выше результатах идентификатор является уникальным идентификатором для tbl_relations, user_id_1 является внешним ключом для tbl_users, а user_id_2 является внешним ключом для tbl_users, теперь представьте, что мы хотим запросить и проверить, если пользователь с идентификатором "4" друг с пользователем с идентификатором "9" или нет, здесь нам нужно отправить запрос двумя способами, я имею в виду:

SELECT * FROM tbl_relations WHERE (user_id_1 = '4' AND user_id_2 = '9') OR (user_id_1 = '9' AND user_id_2 = '4')

Вышеупомянутый запрос кажется мне немного странным, должен быть другой способ реализации этого, я думаю, может быть, другая структура базы данных?

Или другой запрос, мы хотим получитьобщие друзья между пользователями с идентификатором "4" и "8", как я'Я должен получить общих друзей в этом сценарии? Есть ли лучшая структура базы данных для этого?

Буду признателен за любую помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос