Хранение форматированных текстовых документов - PullRequest
1 голос
/ 01 мая 2010

Это продолжение другого вопроса, который я задал ранее сегодня. Я создаю настольное приложение, в котором хранятся документы форматированного текста, созданные в WPF (в элементе управления RichTextBox). Приложение использует SQL Compact, и до сих пор я планировал хранить каждый документ в двоичном столбце в базе данных.

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

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

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Не знаете, почему это не было упомянуто ранее, но рассматривали ли вы тип данных FILESTREAM, который доступен в SQL Server 2008 и более поздних версиях?

Он сочетает в себе преимущества хранения в файловой системе и преимущества хранения в БД. Вот ссылка на официальный документ MS http://download.microsoft.com/download/a/c/d/acd8e043-d69b-4f09-bc9e-4168b65aaa71/SQL2008UnstructuredData.doc

Еще одна очень сильная сторона файлового потока, с моей точки зрения, заключается в том, что он не ограничивает размер экспресс-выпусков SQL Server, что может быть очень удобно

1 голос
/ 01 мая 2010

Лично я склонен использовать файловую систему

Pro DB

  • Может выполнять поиск с использованием функций поиска SQL (вероятно, будет немного неудобно с RTF из-за кодов управления)
  • Сделайте резервную копию файла MDF, и вы сделали резервную копию всех документов в одном месте
  • Может легко реализовать управление версиями
  • Проще поддерживать синхронизацию данных и файлов, которые ссылаются на них

Файловая система Pro

  • Загружается внешними приложениями (и людьми)
  • Поврежденная БД убивает все ваши документы
  • Доступно для поиска с помощью инструментов / индексаторов файловой системы
  • Требуется менее сложный код ввода-вывода
  • Знакомый пользователю
  • Путь может указывать куда угодно (т. Е. На другой машине / другом логическом диске)
  • Более портативный код ввода-вывода
...