Использование каталогов для моделирования контента по сравнению с базами данных - PullRequest
0 голосов
/ 26 октября 2011

Впервые я увидел это, когда экспериментировал с Netbeans Framework. Например, если вы хотите создать меню в форме пользовательского интерфейса, вы должны создать файлы, имена файлов которых будут соответствовать элементу меню. Например, если вы хотите, чтобы в вашем меню были «Файл», «Редактировать» и «О программе», вы должны создать фактические файлы с этими именами и поместить их в каталог. Может быть, это имя каталога было Меню. Другими словами, содержимое вашего приложения было получено из каталогов, их имен и структуры, а также из файлов, которые в них содержатся, но не обязательно из данных в файлах.

Так быстро вперед ... сейчас мой начальник хочет, чтобы я смоделировал иерархические отношения между данными ... Моим первым стремлением было смоделировать их с использованием БД, но когда он поделился со мной своим дизайном, он концептуализировал его с помощью наличие файлов в каталогах для моделирования отношений. Сначала я говорил «это очень нерегулярно», но потом я вспомнил Netbeans, поэтому я не мог сказать ему, что это было сумасшествие или что-то необычное, не будучи лицемером, поскольку я видел это раньше.

Есть ли название для этого подхода? Я предполагаю, что мой интерес к этому вопросу на данный момент чисто академический.

Спасибо!

1 Ответ

0 голосов
/ 26 октября 2011

Файловая система - это, по сути, иерархическая база данных.Есть много случаев, когда такой подход используется.Два, которые выделяются на данный момент, это меню «Пуск» Windows и формат почтового хранилища Maildir.

Я не знаю, существует ли для этого явное имя.Тем не менее, это правильный подход к решению проблемы хранения.Конечно, вы должны принять во внимание несколько вещей.Будет ли хранилище только иерархическим или нужно будет также хранить «отношения».Как насчет количества сохраненных объектов (файлов)?Проблемы с именами файлов?Права доступа?Количество файлов в каталоге?

В некоторых случаях база данных оказывается проще.Возможно, что-то вроде Active Directory или базы данных на основе документов, такой как MongoDB, может быть лучшим решением.

...