Вы, вероятно, не сможете сделать это на уровне базы данных - код вашего приложения должен будет это сделать.Если вы убедитесь, что ваши записи tbl_friends всегда содержат (lowId, highId), то типичный PK / Unique Index решит проблему дублирования.На самом деле, я бы зашел так далеко, чтобы переименовать столбцы в ваших tbl_friends в (id_low, id_high) просто для усиления этого.
Ваш запрос, чтобы найти что-нибудь с пользователем 713, был бы тогда чем-то вроде
SELECT id_low AS friend FROM tbl_friends WHERE (id_high = ?)
UNION ALL
SELECT id_high AS friend FROM tbl_friends WHERE (id_low = ?)
Для эффективности вы, вероятно, захотите проиндексировать его вперед и назад - то есть с помощью (id_user, id_friend) и (id_friend, id_user).
Если вы должны сделайте это на уровне БД, тогда будет работать хранимая процедура для обмена аргументами (низкий, высокий) перед вставкой.