Дисковое устройство хранения данных базы данных, лучшие практики

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

Мой вопрос - это;

Я только был разработчиком программного обеспечения в течение 3-4 лет теперь. Это может походить на время достаточно долго для ответа на этот вопрос самостоятельно однако во все мое время, я никогда не должен был разрабатывать программное обеспечение, где основная часть хранения данных не требуется, чтобы быть в базе данных онлайн. На этот раз однако мое последнее достижение требует только, чтобы его данные хранились только к диску.

Сами фактические данные легки. В коде основной актив будет классом только с некоторыми, основанными на строке свойствами на нем, которые должны быть сохранены. Мои начальные мысли находятся на простой сериализации. На приложении близко новые активы просто сериализируются и хранятся на диске как файл. Я также, хотя, возможно, в целях резервирования (или если бы это - так или иначе более оптимальный вариант к сериализированному классу) XML-файл был бы соответствующим.

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

8
задан Brian Tompsett - 汤莱恩 19 December 2015 в 14:41
поделиться

4 ответа

Сериализация (двоичная или XML) подходит для небольшого количества данных. Проблема с этим подходом заключается в том, что вы получаете большие объемы данных (которые вам может потребоваться запросить).

Если вы работаете на платформе Windows и нуждаетесь в соответствующей базе данных, вы можете использовать встроенный механизм базы данных, который поставляется с Windows - ESENT . Это резервное хранилище Exchange и RavenDB .

Здесь находятся библиотеки оболочки .NET для него.

ManagedEsent обеспечивает управляемый доступ к ESENT, встроенному ядру базы данных, встроенному в Windows. ManagedEsent использует esent.dll, который является частью Microsoft Windows, поэтому не нужно загружать и устанавливать дополнительные неуправляемые двоичные файлы.

3
ответ дан 6 December 2019 в 00:04
поделиться

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

Посмотрите эту ссылку для оболочки C #: http://sqlite.phxsoftware.com/

Я также использую NHibernate и NHibernate.Linq для взаимодействия с данными, вы можете получить сборку обоих, которые совместимы здесь: http: // www .dennisdoomen.net / 2009/07 / nhibernate-210-ga-with-linq-and-fluent.html

NHibernate.Linq позволяет вам использовать этот красивый синтаксис запросов Linq в вашей базе данных Sqlite:

var onePiece = из s в session.Linq (), где s.Name == "One Piece" выберите s;

0
ответ дан 6 December 2019 в 00:04
поделиться

Самым легким решением, конечно же, является использование XML и сериализации. Основное преимущество этого заключается в том, что это очень просто, требует небольшого кода и легко редактируется с помощью текстового редактора. Другое преимущество этого - возможность иметь несколько файлов, и их будет легко переносить с ПК на ПК.

Вот хорошее руководство по сериализации XML .

Однако, если ваше приложение будет много читать, записывать и изменять данные и есть только один источник данных, было бы лучше использовать облегченную базу данных. Многим нравится SQLite , а я лично предпочитаю Firebird .

См. Этот вопрос об использовании SQLite с C # и см. Здесь информацию об использовании Firebird с .net .

1
ответ дан 6 December 2019 в 00:04
поделиться

Другой вариант встроенной базы данных - Sql Server Compact Edition . Последней версией этого является v4 , и, похоже, она значительно улучшена по сравнению с предыдущими версиями.

Функционально это эквивалентно использованию XML-файла, базы данных доступа или даже простого старого текстового файла, поскольку вам не нужно запускать службу Sql Server или устанавливать что-то особенное на машине, на которой работает ваше приложение. на.

0
ответ дан 6 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: