Rails CMS: статические файлы или записи базы данных? - PullRequest
1 голос
/ 26 марта 2011

Я пытаюсь выяснить, в какой момент «текстовая запись» должна храниться в базе данных, а не как статический файл.Есть ли здесь какие-то правила?Текстовые записи будут содержать не более нескольких абзацев и содержат ссылки на изображения и таблицы (и гиперссылки на другие текстовые записи).Некоторые критерии для ввода текста:

  1. Я думаю об использовании DITA в качестве формата контента
  2. Текст должен быть доступен для поиска
  3. Если текст пересмотрен,будет создана новая версия

заранее спасибо, Чак

Ответы [ 2 ]

0 голосов
/ 26 марта 2011

Вместо того, чтобы обрезать, вы можете посмотреть, что предоставляют базы данных, и спросить себя, будут ли эти функции полезны.Возьмите изоляцию (I в ACID ): если у вас есть какие-либо опасения, что несколько человек могут пытаться редактировать запись одновременно, база данных справится с этим хорошо, в то время как вам придется обрабатывать блокировкиВы работаете с файлами.Или атомарность: вам может потребоваться обновить две вещи одновременно (например, индексную страницу и страницу ввода) и знать, что они либо удастся выполнить, либо потерпят неудачу.

Базы данных выполняют ряд функций помимо ACID, например:использование нескольких типов данных, упрощение запросов и масштабирование.Этот вопрос стоит задать, поскольку в большинстве баз данных данные хранятся в виде набора файлов на диске.Не могли бы вы в конечном итоге написать мини-базу данных, если бы вы использовали файлы самостоятельно?

Кроме того, если вы используете rails, вы не возражаете и воспользуйтесь его функциональностью ActiveRecord и дадите возможность использовать множество плагинов, которыеожидайте базу данных.

Я бы использовал базу данных даже для небольшого однопользовательского приложения rails.

0 голосов
/ 26 марта 2011

"Путь рельсов" будет использовать базу данных.

Решение будет более масштабируемым, а следовательно, более быстрым и, вероятно, более простым в разработке (с использованием миграции и т. Д.). Используя файловую систему, вам придется самостоятельно создавать множество функций, которые уже реализованы для использования в базе данных.

Вы можете создать документ модели (например,) и легко использовать существующие системы управления версиями, например paper_trail . При использовании индексированного поиска вы можете просто иметь отношение has_many, позволяющее вам реализовать зависимости между моделями (уничтожить модель означает уничтожить поисковый индекс).

...