Суть такая: необходимо сделать чат, в котором можно также обмениваться файлами. Пример на скрине. Как сделать без файлов я понимаю(используя sql). Но как сделать так, чтоб одним запросом можно было выбрать сразу например 100 последних сообщений между двумя пользователями, причем, если в каком-то сообщении есть файлы, то их тоже нужно отобразить?
Если в виде строки хранить файлы для одного сообщения, то я думаю это будет не нормализованный вид? Хотя на первых взгляд такое решение кажется самым простым. Но в таком случае непонятно, как для каждого файла одним запросом извлекать его путь на сервере?
У меня нет идей как совместить 3 сущности: пользователи, текстовые сообщения, файлы в одну выборку, один запрос.
Может в этой задаче лучше использовать nosql решения? Данные будут хранится приближенно к модели.
Если кто сталкивался с подобной проблемой, буду рад услышать советы, ссылки, предложения.
Спасибо.
Скрин: