Собственная база данных XML и БД по отношениям - PHP и XQuery - PullRequest
0 голосов
/ 08 февраля 2011

Я пытаюсь разработать веб-сайт, на котором многие рецепты хранятся и извлекаются для клиентов.У меня было несколько курсов по XML и нативным базам данных на основе XML, и на этих курсах была представлена ​​концепция нативных баз данных XML.Кроме того, если я правильно помню, мы узнали, что XQuery является наиболее подходящим языком программирования для работы с XML.Из-за полуструктуры и не очень табличного характера рецепта, я думаю (пожалуйста, исправьте меня, если я ошибаюсь), что это может быть лучше всего выражено в файле XML, как показано ниже:Я знаю, что у реляционных баз данных есть свои преимущества и преимущества по сравнению с другими вариантами, однако в этом конкретном случае это приведет к такому количеству операций объединения таблиц.С другой стороны, родные базы данных XML не кажутся мне многообещающими с точки зрения их производительности и способности обрабатывать большой объем данных.Кроме того, программирование на PHP намного проще, чем XQuery, учитывая огромный объем учебных пособий и справок в Интернете.Я действительно не знаю, что делать, и поэтому я пришел к вам, ребята.

Ответы [ 4 ]

2 голосов
/ 09 февраля 2011

Если вы хотите создавать полноценные веб-приложения полностью в XQuery, вам стоит взглянуть на Sausalito: http://www.28msec.com Начало работы скринкаст: http://www.youtube.com/watch?v=4SZ8n4xe3ws

1 голос
/ 12 февраля 2011

некоторая простая теория определения, не смотря ни на какие строгие требования или что-то еще. сначала где будет ваш источник данных.

  1. если ваши данные генерируются через экраны пользовательского ввода.
  2. , если ваши данные хорошо проверены и обработаны одним приложением (например, через Интернет).
  3. если ваши свойства и функции данных в значительной степени заморожены и нет нового измерения для них.
  4. если ваши данные имеют транзакционный характер.

тогда вы можете думать об отношении - дб.

  1. если ваши данные поступают из разных источников данных, таких как обычный файл, XML, очистка экрана и т. Д. И т. Д.
  2. Сравнительно меньше суммы транзакции
  3. свойства данных являются текучими и могут иметь различные срезы / измерения.
  4. готов к работе с функциональными языками, такими как XQuery или Xmllized, такими как XSLT

тогда база данных Xml - это ключ.

1 голос
/ 08 февраля 2011

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

0 голосов
/ 12 февраля 2011

Кажется, вы думаете, что вам нужно выбрать одно или другое здесь.Это не так, XQuery на самом деле не является полноценной средой веб-сценариев, это замена SQL, а не PHP.Поэтому вы, безусловно, можете использовать PHP для создания веб-ориентированных частей сайта, таких как логины пользователей (которые также могут быть в реляционной БД), а затем использовать XQUery только для слоя запроса рецептов.

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

...