Какая база данных для хранения файловых путей?

0

Я создаю приложение с функциями обмена мгновенными сообщениями. Приложение позволит пользователям отправлять файлы/изображения, а также обычные текстовые сообщения.

Я решил использовать этот подход для хранения файлов в файловой системе и писать только пути к базе данных. Не будет обновлений файлов (только вставки и удаления).

Какая база данных была бы лучшей для хранения большого количества путей к файлам, что было бы легко запросить для определенных файлов пользователя?

  • 0
    насколько большое количество файлов? 1G или 1M или 100K? какая платформа? какая база данных? ...
  • 0
    С MySQL. Дизайн таблицы зависит от того, сколько файлов / изображений на сообщение / пользователя. Это займет как минимум четыре таблицы: пользователи; Сообщения; файлы; Messages_Files. Эта последняя таблица будет связывать файлы с сообщениями. Или вы можете удалить эту последнюю таблицу, если каждая строка файла имеет внешний ключ для своего сообщения, а другой - для своего пользователя.
Показать ещё 1 комментарий
Теги:
database
database-design

1 ответ

0
Лучший ответ

Я бы пошел с MongoDB. Мой опыт заключается в том, что лучше всего использовать подход на основе документов с использованием единой коллекции сообщений. Каждый документ сообщения затем содержит все пути к файлу. Это исключает объединение и улучшает поддержку будущих изменений функциональных требований.

MongoDB также предоставляет отличные способы обработки старых сообщений, таких как TTL-индексы.

  • 0
    Смогу ли я решить проблему удаления файла из файловой системы и записи пути к файлу из базы данных как одну атомарную операцию? Позволяет ли мне MongoDB использовать транзакционный подход?
  • 0
    В этом случае я настоятельно рекомендую хранить файлы в GridFS (в Mongo), а затем использовать транзакции. Удаление может быть выполнено как одно действие.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню