Как спроектировать БД для диалогов?
Есть ли более "красивые" методы связи диалога и пользователя?
Вариант завести еще одну таблицу dilog_users
dialog_id | user_id
1 | 2
1 | 3
1 | 4
1 | 5
Но мне кажется это не реально раздует бд, да и разницы особо не будет.
MySQL - это РЕЛЯЦИОННАЯ СУБД.
Для нее абсолютно нормально и совершенно естественно хранить данные именно так.
Про раздувание СУБД не стоит волноваться - современные СУБД спокойно хранят миллиарды строк и быстро с ними работают.
Метод же с LIKE - абсолютно неестественен для реляционных СУБД, что по мере "раздувания" СУБД приведет к крайне медленной работе.
LIKE - дико медленная операция, ее стоит использовать в исключительно редких случаях и то, для маленьких таблиц.
Ваш вариант MANY_TO_MANY ниже - на порядки лучше.