Рекомендации, необходимые для текстового контента, я должен использовать текстовые файлы или базу данных? - PullRequest
2 голосов
/ 21 марта 2010

Я делаю веб-приложение в asp.net mvc. Теперь я нахожусь в точке, где я делаю много текстовой информации, такой как тексты справки, eula, политика конфиденциальности и т. Д. Я понял, что я не уверен, как лучше всего хранить эти тексты. 1. Прямо на странице aspx 2. В текстовых файлах, а затем загрузить текст через ViewData [] в файл ASPX 3. В моей базе данных sql

Если использовать вариант 3, как мне тогда создать базу данных, например eula = таблица x, privacypolicy = таблица y?

Полагаю, мне просто нужно несколько советов о том, каковы плюсы и минусы вариантов выше.

Ответы [ 3 ]

1 голос
/ 21 марта 2010
  1. Непосредственно на странице ASPX -> черт возьми, нет! , Вам придется пересобирать и публиковать для каждого изменения. это ужасно.

  2. Текстовые файлы позволят вам использовать более простое кэширование в случае, если эти данные не часто меняются, но текстовые файлы ужасны во многих отношениях. В конце у вас будут десятки / сотни текстовых файлов, и вы не поймете, что на что ссылается. (Так что вам все равно придется вести таблицу базы данных с указателями на файлы).

  3. Что приводит к единственно возможному решению здесь, сохраняя все в базе данных. Вы также можете использовать кеширование или даже, если это не много, хранить все в переменной приложения, которая будет переиндексироваться при каждом сбросе.

  4. Не имею большого опыта в этом, но, возможно, использование LocalResources будет хорошей идеей. Это позволит вам (при необходимости) поддерживать несколько языков в дальнейшем.

0 голосов
/ 21 марта 2010

Если эти файлы уже существуют, и можно ожидать, что они изменятся позже, было бы неплохо ссылаться на них из базы данных по имени файла.

Если, с другой стороны, вы хотите, чтобы сам текст находился в базе данных, то наличие таблицы «содержимого страницы» может хорошо работать, когда каждый кортеж представляет отдельный текст: один атрибут является идентификатором текста, одним атрибутом является сам полный текст.

Какой бы метод вы ни выбрали, я бы порекомендовал следовать принципу СУХОЙ : выберите одно каноническое и легко управляемое местоположение и придерживайтесь его во всем приложении.

0 голосов
/ 21 марта 2010

Если ваше приложение действительно маленькое, сохранение текста на страницах может быть нормальным, но как только приложение и команда, стоящие за ним, вырастут, это может стать проблемой.Такие вещи, как передача текста профессиональному писателю, переводы, корректура юристом, будут утомительными, когда текст смешивается с вашим кодом

Хранение текстов в простых текстовых файлах должно быть вполне приемлемым для большинства приложений.Единственная проблема здесь может быть, когда часть приложения фактически меняет текст.В этих случаях их хранение в базе данных может быть хорошей идеей.

Хранение текста в базе данных в большинстве случаев является излишним.База данных в основном предлагает преимущества транзакций ACID и индексов для структурированных данных.Но если ваши тексты не изменяются через приложение, свойства ACID не очень полезны.И если это просто текстовые фрагменты, которые будут использоваться в приложении, вы сможете напрямую указать имя фрагмента / файла, поэтому индексация по данным также не принесет пользы.Но база данных также имеет свои издержки: большие объемы данных могут сделать кэш неэффективным для данных, которые действительно принадлежат базе данных.Обработка транзакций приводит к снижению производительности.Поэтому, если вам не нужно, вы не должны использовать базу данных.

...