Тема: Діалоги / 2 користувача
Привіт.
Раніше не звертав уваги на подібне, писав як є, а зараз вирішив запитати вашої думки.
Щоб все стало зрозуміло, є подібна "пошта" для користувачів, щось типу:
http://replace.org.ua/pun_pm/inbox/
Потрібно якнайкраще з'єднати двох користувачів в "діалог".
Таблиця users:
id | name
Таблиця dialogs:
id | first_user | second_user
first_user - той хто "додає" діалог, second_user - той, кого додають. Це ID користувачів.
В даному випадку перестановка хто додав і кого додали неважлива.
Допустимо я авторизований з id 1, то..
SELECT
   u.name as username,
   u.id as to_id 
FROM
   users u 
   LEFT JOIN
      dialogs d 
      ON u.id = IF(d.first_user = 1, d.second_user, d.first_user) 
WHERE
   d.first_user = 1 
   OR d.second_user = 1Тобто на 1 діалог - 1 запис в БД.
Але є ще один варіант, коли той хто створює діалог, робить в БД відразу два записи, типу (мій id 1, а співрозмовника - 2):
Таблиця dialogs:
id | first_user | second_user
1 | 1 | 2
2 | 2 | 1
Такий варіант зпростить сам запит, оскільки я буду робити вибірку тільки по second_user (діалоги зі мною) + не треба буде IF'ів. 
Але збільшить кількість записів в таблиці в два рази.  
Що скажете на рахунок кожного?