Какой формат я использую для хранения относительно небольшого количества пользовательских данных - PullRequest
12 голосов
/ 19 апреля 2010

Я пишу небольшую программу для нашей местной средней школы (бесплатно). Программа имеет интерфейс, позволяющий пользователю вводить школьные каникулы. Это простое отдельное приложение для Windows.

Какой формат я должен использовать для хранения данных? Большие реляционные данные явно излишни.

Мой первоначальный план состоял в том, чтобы хранить данные в файле XML. Сотрудники предлагают мне использовать файлы JSON, базы данных Access, SQL Lite и SQL Server Express. Было даже предложение о файлах INI старой школы.

Ответы [ 10 ]

10 голосов
/ 19 апреля 2010

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

Я бы не рекомендовал хранить данные в XML-файле или json - это просто текстовые файлы с другим именем, все страдают от одной и той же проблемы - вы не можете контролировать, кто их редактирует.

Использовать какой-то дБ, начиная сначала с маленьких (Access, SQLLite)

Редактировать

Исходя из ваших последних комментариев, откатитесь до точки, когда пользователи использовали приложение в течение двух лет.

  • Сколько данных вы ожидаете сохранить к тому времени?
  • Потребуется ли пользователям просматривать исторические данные, чтобы увидеть, например, что они сделали в этот раз в прошлом году

И более того, прямо сейчас

  • Что делает Учитель А днем ​​в четверг
  • Будет ли Учитель Б свободен для участия в мероприятии 15 мая 2010 года?
  • Может ли Студент C посетить мероприятие D?

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

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

3 голосов
/ 19 апреля 2010

Рассматривали ли вы использование SQLite? Это приведет к небольшому файлу .s3db. SQLite используется всеми типами настольных приложений для локального хранения.

Существует библиотека SQLite .NET , которая позволит вам использовать ADO.NET для CRUD-обработки ваших данных.

Ознакомьтесь с Статья Майка Дункана о том, как начать работу с SQLite в .NET .

3 голосов
/ 19 апреля 2010

Мне нужно было бы ответить Json и SQL Lite.

Другим вариантом будет использование встроенной базы данных, которая включена во все окна ( начиная с Windows 2000 ), ESENT. Существует проект codeplex, облегчающий работу с http://managedesent.codeplex.com/

2 голосов
/ 19 апреля 2010

Я бы порекомендовал файл XML и набор типизированных данных.
Вам нужно будет выяснить, куда поместить файл XML.

Обратите внимание, что если вы хотите разрешить нескольким пользователям использовать его, вам необходимо для использования базы данных, такой как Access или SQL Server.

2 голосов
/ 19 апреля 2010

Хм, очевидно, что SQL Express - полноценная база данных - отчасти это может иметь смысл. Почему бы НЕ использовать базы данных, если они уже есть?;)

В противном случае я мог бы пойти с файлом XML.

1 голос
/ 19 апреля 2010

Из «простого автономного приложения Windows» мне кажется, что это не критично. Я бы пошел с тем, что легче всего, или с тем, что вам удобнее всего. XML удобен для чтения человеком, но разумно отформатированный плоский файл может быть таким же разумным.

1 голос
/ 19 апреля 2010

XML-файлы, кажется, хороший вариант. используя Linq to xml, довольно просто читать / записывать файлы из объектов / в объекты. проверить классы XDocument и XElement Доступ к базам данных, SQL Lite и SQL Server Express выглядит как излишнее. Вам действительно нужна база данных для хранения простых данных календаря? Ваше приложение будет расти?

1 голос
/ 19 апреля 2010

Я бы пошел на

  • SQL Server Express (бесплатная и полноценная реляционная база данных)
  • XML / JSON, если вам не нужна база данных (здесь может помочь LINQ to XML).
0 голосов
/ 13 марта 2011

Следует учитывать одну вещь, если вы используете базу данных вместо какого-либо текстового файла: вы больше не «простое автономное приложение Windows». Теперь у вас (скорее всего) есть программа установки для записи.

0 голосов
/ 19 апреля 2010

Я бы использовал сериализованные классы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...