2010-09-05 9 views
0

У меня проблема с выбором хранения некоторых данных. Чтобы увидеть это с простой точки зрения, это будет простая таблица данных, но будет много таблиц. В каждой таблице будет около 7 столбцов, но опять же будет много таблиц (и они будут созданы во время выполнения, когда клиент хочет получить чистую сетку)Как сохранить мои данные (C# .net)

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

Я использую C# 4.0, и я рассматриваю использование файлов XML (один файл в таблице или хранение нескольких таблиц в файле), sqlite, sql server CE, доступ и т. Д. Я буду рад, если кто-то здесь имеет некоторые комментарии или предложения о том, как это сделать/не делать. Стабильность и надежность (например, без разбитых баз данных из-за нестабильного программного обеспечения сторонних разработчиков), вероятно, моя самая большая проблема.

+1

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

+0

Один большой фрагмент информации, который, как мне кажется, вы оставили, - сколько строк вы смотрите на стол? –

ответ

0

XML не будет хорошим выбором, если вы планируете делать несколько запросов, так как загрузка текстовых файлов может быть болезненной, когда они растут (речь идет о файлах более 1 Мб). Если вы планируете записывать данные на низком уровне, xml будет хорош, чтобы сохранить его простым. Я все равно не буду использовать его, но если у вас есть фон, то преимущества будут тяжелее, чем кривая обучения.

Если у вас нет опыта в какой-либо из них, и данные светлые, мое предложение - SQLite, я верю, это лучшая облегченная БД для .Net и prvider - это очень хорошо. вы можете легко найти его в Google.

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

Опять же, моя последняя рекомендация - SQLite, если только вы не знаете очень хорошо другой, и в этом случае вам придется подумать, сколько ваших данных будет расти. Если вы планируете иметь БД около 100 МБ, любой из них, кроме xml, будет делать; Если вы считаете, что это будет больше, рассмотрите SQLite в значительной степени

+0

Размер может быть проблемой, если я храню данные в одном XML-файле, но не в том случае, если я храню его в нескольких экземплярах. Но есть преимущества хранить все в одном файле. У меня есть опыт работы с xml (по крайней мере, немного, я использовал его с LINQ для предыдущих проектов) и mysql + microsoft sql server для некоторых других проектов. Как я вижу, у этого доступа есть то преимущество, что мне не нужно полагаться на сторонний код, тогда как с SQLite мне понадобится адаптер от третьего лица, о котором я немного беспокоюсь. Но похоже, что существует несколько решений с открытым исходным кодом, поэтому в любом случае это может быть не проблема. Спасибо – DkM

1

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

http://web.archive.org/web/20100208133236/http://www.mikeduncan.com/sqlite-on-dotnet-in-3-mins/ - это достойный учебник, дающий краткий обзор того, как его настроить и начать работу.

Что касается того, что НЕ делать: не пытайтесь создать свою собственную схему для сохранения данных в файл, это хорошо понятая проблема, которая была решена много раз, зачем повторно изобретать колесо?

+0

Спасибо за ссылку, я дам ей выстрел :) – DkM

Смежные вопросы