Какой формат делают я использую для хранения относительно небольшого объема пользовательских данных

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

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

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

12
задан wcm 19 April 2010 в 13:11
поделиться

9 ответов

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

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

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

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

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

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

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

  • Чем занимается учитель A в четверг днем ​​
  • Будет ли учитель B свободно посещать мероприятие 15 мая 2010 г.?
  • Может ли ученик C присутствовать на мероприятии D?

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

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

10
ответ дан 2 December 2019 в 06:44
поделиться

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

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

Прочтите статью Майка Дункана о том, как начать работу с SQLite в .NET .

3
ответ дан 2 December 2019 в 06:44
поделиться

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

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

3
ответ дан 2 December 2019 в 06:44
поделиться

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

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

2
ответ дан 2 December 2019 в 06:44
поделиться

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

1
ответ дан 2 December 2019 в 06:44
поделиться

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

1
ответ дан 2 December 2019 в 06:44
поделиться

Я бы выбрал

  • SQL Server Express (бесплатная и полноценная реляционная база данных)
  • XML / JSON, если вам не нужна база данных (LINQ to XML может быть здесь большим подспорьем).
1
ответ дан 2 December 2019 в 06:44
поделиться

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

0
ответ дан 2 December 2019 в 06:44
поделиться

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

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

2
ответ дан 2 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

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