XML против SQL для небольших проектов?

10

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

Для чего нужны данные:

  • Shedules
  • Библиотека файлов в папках (с именем исполнителя, названием, расположением на жестком диске)
  • Возможно статистика на основе данных расписания
  • ...

Информация о библиотеке была бы в порядке в XML, я думаю, но во всем остальном я не уверен. Кроме того, LINQ to SQL кажется гораздо более выгодным с точки зрения скорости разработки, чем LINQ to XML. Это правильно или я не прав? Я не был уверен, должен ли я публиковать это на SO или здесь, но это казалось более подходящим здесь!

заранее спасибо

Citroenfris
источник
2
«Один пользователь за один раз» - это кодовое высказывание, «через шесть месяцев он станет нашим единственным источником дохода и должен будет поддерживать 4000 одновременно работающих пользователей». Планируйте соответственно :)
Брайан Бетчер
Вам даже не нужно запускать службу сервера sql, вы можете просто сделать ее прикрепленной к файлу базой данных, если вы беспокоитесь о миграции с компьютера на компьютер.
Питер Смит
2
независимо от того, что вы выберете, создайте слой абстракции, чтобы вы могли легко переключаться на другую схему, когда это необходимо
трещотка урод

Ответы:

13

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

XML хорош для читаемых человеком данных, которые могут быть разделены и интерпретированы между приложениями, как и предполагалось. Синтаксический анализ XML включает в себя МНОГИЕ манипуляции со строками, которые могут быть дорогостоящими по мере увеличения размера набора данных.


источник
3
Не забудьте о компактном издании.
Джефф
2

Звучит так, как будто ваши данные могут потенциально расти бесконечно (если я не понял ваше приложение). В этом случае я бы сказал, что для обеспечения эффективности и производительности лучше оставить постоянное хранилище на уровне ядра базы данных.


источник
1

Перейти с подходом базы данных. Это проверенная технология обработки данных.

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

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

Используя базу данных, вы можете сравнительно легко изменить структуру базы данных (добавить столбец, таблицу и т. Д.), И есть инструменты, которые помогут вам перемещать данные между базами данных, где, как и в XML, вы делаете это самостоятельно.

В базе данных вы можете применить правила целостности и позволить пользователям писать свои собственные выборки, если это необходимо, что не совсем просто в XML.

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

Для вышеперечисленного используйте базу данных! EK

Без шансов
источник