2008-10-21 2 views
6

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

Спасибо!

ответ

12

Если вы считаете, что в конечном итоге вам понадобится больше, чем крошечное количество CRUD, или ваш сайт будет расти за пределами нескольких пользователей, используйте базу данных.

Поиск или обновление файлов XML может привести к снижению производительности и будущей масштабируемости.

+1

Этот вопрос не может быть достаточно напряженным, я ответил на такой вопрос раньше ... но я не могу найти ссылку. Есть статистические данные о различиях. – 2008-10-21 13:52:27

-1

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

+1

XML может использоваться для совместного использования данных, но это не значит, что его нужно хранить как XML в бэкэнд. – 2008-10-21 19:15:27

7

Я бы выбрал использование таблиц базы данных, когда могут возникать параллельные записи, то есть в любой ситуации, когда вы не можете гарантировать, что только одно изменение данных будет происходить в любой момент времени.

Кроме того, если данные являются реляционными, я бы использовал базу данных.

Для небольших вещей, которые, вероятно, будут иметь низкий трафик, XML в порядке.

3

IMO: Используйте БД, когда у вас будет много операций записи на ваши данные. Если вы в основном пишете документ типа конфигурации, что-то в основном читаете, переходите к XML. XML как хранилище данных не является лучшим решением, так как вы получите гораздо лучшие результаты с использованием БД. Особенно, когда вы начинаете иметь много записей (строк), с БД начинает работать легче.

0

Вы можете использовать XML, если вы не собираетесь вводить множество изменений с записями (для меток, config и т. Д.), В противном случае более целесообразно использовать таблицы.

0

Я проектирую свои таблицы и создаю XML-документ с помощью свойств select (FOR XML).

Я думаю, что если я столкнулся с проблемой производительности, я могу изменить свой репозиторий с помощью БД.

Лучше сделать сменную конструкцию, если проблема с производительностью или и так происходит.

2

Я не согласен с Стивеном. Базы данных следует использовать, особенно при совместном использовании данных между приложениями.

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

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

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

+0

Я больше не мог согласиться. Если вы хотите использовать данные, используйте базу данных. Мы используем XML, но сохраняем его для файлов конфигурации, которые являются не чем иным, как прославленными ini-файлами. – SWD 2008-10-21 14:21:28

3

Учитывайте характер ваших данных и ограничивайте хранение данных на ваших данных.Если ваши данные напоминают записи, а не документы, с регулярной структурой и небольшой иерархией и, возможно, с множеством горизонтальных отношений между элементами данных, то, как правило, вы получите лучшую производительность и надежность с помощью РСУБД, чем с каким-то собственным хранилищем XML. Если ваши данные принимают форму документов, с нерегулярными последовательными структурами и неопределенными иерархиями, вы, вероятно, не будете очень осторожны, моделируя эти данные в РСУБД, и вы можете захотеть изучить собственные хранилища данных XML. примеры с открытым исходным кодом включают

  • eXist
  • Sedna
  • MonetDB (этот сайт плохо себя прямо сейчас)

Коммерческие базы данных XML включают

Я не использовал какие-либо из этих продуктов, сам еще.

В любом случае вы можете использовать XML в качестве формата обмена данными.

0

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

Там же [еле] когда-либо повод НЕ использовать базу данных для управления веб-сайта, однако.

Вы также можете рассмотреть гибридный подход, подобный тому, который используется проектом Connexions в Rice University: они используют Plone (и другие материалы поверх него) для представления данных из своей базы данных, созданной на диалекте CNXML.

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