Общий вопрос: файловая система или база данных? - PullRequest
1 голос
/ 05 мая 2010

Я хочу создать небольшую систему управления документами. Есть несколько пользователей, которые хранят свои файлы. Каждый загруженный файл содержит информацию о том, какой пользователь его загрузил, и сам документ. В представлении будут отображаться все файлы ОДНОГО конкретного пользователя, упорядоченные по дате.

Что было бы лучше:

  1. присвоение документам имени или метаданных (XML), которые содержат дату и пользователя (и повторяют их для получения метаданных) или ...

  2. присвоение файлам случайного / уникального имени и сохранение метаданных в БД? как то так:

    date | user | filename
    

Что бы вы сказали и почему? Используемый язык программирования - Java, а БД - MySQL.

Ответы [ 3 ]

3 голосов
/ 05 мая 2010

Я бы выбрал второй вариант для хранения метаданных. MySQL будет обрабатывать параллелизм, а поиск в БД намного быстрее, чем перебор XML-файла.

3 голосов
/ 05 мая 2010

Я бы выбрал БД. БД быстрее, безопаснее (вы случайно не удаляете важные файлы) и проще. Кроме того, это цель БД: управление большим количеством данных. Файловые системы предназначены для хранения файлов.

Но выбор, конечно, за вами.

Но я гарантирую: (DB > XML) == true по производительности и (DB >= XML) == false по размеру файла!

0 голосов
/ 06 мая 2010

Итак, что было бы, если объем данных очень мал, скажем, макс. 30 файлов на пользователя, и скажем, 20 пользователей -> 600 файлов максимум. как бы вы оценили решение создать отдельную папку для каждого пользователя и дать файлам уникальное имя, зависящее от пользователя? Таким образом, вы можете легко перемещаться по файловой системе. в этом контексте, имеет ли БД смысл для такого небольшого количества документов?

...