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


10

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

Для чого дані:

  • Графіки
  • Бібліотека файлів у папках (з ім'ям виконавця, заголовком, розташуванням на жорсткому диску)
  • Можливо статистика на основі даних графіку
  • ...

Інформація, що стосується бібліотеки, буде добре в XML, я думаю, але про все інше я не такий впевнений. Також LINQ для SQL здається набагато вигіднішим з точки зору швидкості розвитку, ніж LINQ до XML. Це правильно чи я помиляюся? Я був невпевнений, чи варто мені розміщувати це на SO або тут, але тут здавалося більш доречним!

Заздалегідь спасибі


2
"Один користувач одночасно" кодовим моментом "через шість місяців, це буде наш єдиний потік доходів і потрібно підтримувати 4000 одночасних користувачів". Плануйте відповідно :)
Брайан Ботчер

Вам навіть не потрібно запускати сервер сервера sql, ви можете просто зробити його файлом, доданим до бази даних, якщо ви переживаєте про перехід з машини на машину.
Пітер Сміт

2
незалежно від того, що ви вибрали, зробіть шар абстракції, щоб ви могли легко перейти на іншу схему, коли це стане необхідним
храповик виродка

Відповіді:


13

Якщо ви будете робити багато IO, SQL - ваш кращий вибір. SQL розроблений так, щоб добре працювати з отриманням / збереженням даних, тому ми використовуємо їх для зберігання даних на щось на зразок веб-сайту на відміну від XML.

XML корисний для читаних людьми даних, якими можна ділитися та інтерпретувати між додатками, як це було зроблено. Аналіз XML передбачає ЛІТИ маніпуляції з рядками, які можуть бути дорогими, оскільки розмір набору даних збільшується.


3
Не забувайте компактне видання.
JeffO

2

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


1

Перейдіть із підходом до бази даних. Це перевірена технологія обробки даних.

Що стосується продуктивності, можливо, ви зможете пришвидшити свій доступ, встановивши індекси, де в XML таких засобів немає.

У базі даних ви можете обчислювати статистичні дані за допомогою сукупних функцій, у XML ви повинні це кодувати.

Використовуючи базу даних, ви можете відносно змінити структуру бази даних (додати стовпчик, таблицю тощо), і є інструменти, які допоможуть вам переміщувати дані між базами даних, де, як у XML, ви повинні це зробити самостійно.

У базі даних ви можете застосувати правила цілісності, і ви можете дозволити користувачам писати свої власні виділення, якщо це потрібно, не дуже просто в XML.

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

Для вищесказаного використовуйте базу даних! ЕК

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.