Подскажите, как организовать базу данных для общения внутри сайта, нужно ли каждому пользователю создавать отдельную базу для сообщений или как то сыпать все в одну и из нее уже распределять?
отдельно для каждого пользователя не стоит. Сделайте так. Создайте таблицу users, message и в таблице сообщений создайте поле user id .. и другие поля, которые вам нужны. при записи сообщений пользователя, записываете в таблицу сообщений id usera который уникален, и вытаскиваете сообщение тоже по ид