Преимущества баз данных по сравнению с XML на легком сайте покупок? - PullRequest
2 голосов
/ 19 мая 2009

У меня есть облегченный сайт онлайн-покупок, основанный на JSP и XML, и мне интересно, в чем особые недостатки этой системы по сравнению, скажем, с PHP и MySQL?

Я знаю, что JSP может использовать API-интерфейсы Java, но я чувствую, что PHP имеет более "естественные" отношения с HTML, а также обладает преимуществами динамической типизации и гораздо более распространен и востребован. Есть ли причина для этого?

Ответы [ 9 ]

17 голосов
/ 19 мая 2009

Я бы сказал, что основные недостатки XML-решения перед базой данных:

  1. скорость поиска
  2. скорость обновления
  3. масштабируемость
  4. параллелизм (спасибо Джонатану)
5 голосов
/ 19 мая 2009

легкий относительный. Перейти на решение для базы данных. Вы никогда не знаете, когда ваш «легкий» сайт становится «критически важным»

2 голосов
/ 04 августа 2010

У меня есть облегченный сайт онлайн-покупок, основанный на JSP и XML, и мне интересно, в чем особые недостатки этой системы, скажем, в отношении PHP и MySQL?

JSP и PHP являются технологиями просмотра. Преимущество JSP заключается в поддержке Java (EE), который является сильным языком и платформой. Преимущество PHP в том, что он является самым простым и общедоступным языком веб-программирования. Недостатки говорят сами за себя.

Чтобы разработать надежное веб-приложение, следуя идеологии ОО, выберите JSP (если вы не встраиваете в него необработанный код Java 90-х годов, используя скриптлетов ). Если вы спешите и / или не заботитесь о возможности сопровождения в будущем и хотите создать веб-сайт электронной коммерции за один день, выберите PHP.

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

Сравнение JSP + XML с PHP + MySQL немного похоже на сравнение яблок с апельсинами. XML, тем не менее, кусает вас как хранилище данных, поэтому вы бы предпочли MySQL, несмотря на то, что он работает с PHP. Однако вы можете получить доступ к базам данных так же хорошо с Java. Для начала у вас есть JDBC API для. В целом, я бы предпочел JSP + SQL.

Я знаю, что JSP может использовать API Java, но я чувствую, что PHP имеет более «естественные» отношения с HTML, а также имеет преимущества, связанные с динамической типизацией, и является гораздо более распространенным и востребованным. Есть ли причина для этого?

Легче всего разобраться тем, кто абсолютно ничего не знает о программировании. Все, что вам нужно, это простой веб-сервер и текстовый редактор. Он очень быстро разрабатывается с помощью PHP, так как у него есть мгновенная обратная связь, а в Интернете доступно бесчисленное множество руководств и фрагментов кода. Кроме того, у вас есть гораздо больший выбор бесплатного PHP веб-хостинга, в то время как вам придется заплатить немного больше за надежный хостинг JSP / Servlet.

2 голосов
/ 19 мая 2009

PHP, как правило, более распространен и востребован, потому что у него очень малая кривая обучения, и его легко освоить обычному разработчику. Также не повредит, что он обычно поставляется в комплекте с большинством установок Apache на серверах под управлением Linux.

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

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

Тем не менее, переход на базу данных не означает, что вам нужно выйти из JSP, если вы уже работаете с ней.

1 голос
/ 19 мая 2009

Если вы находитесь в ситуации, когда вы предполагаете наличие отношений между сущностями, я обнаружил, что с XML значительно сложнее работать, чем с базой данных отношений. Мало того, что определение существующих отношений вызывает проблемы (требующие либо сохранения карты этих отношений в памяти, либо многократного чтения больших наборов файлов), но и сохранение целостности ссылок - ужасная проблема для XML. Даже такая простая вещь, как классификация элементов по какой-либо таксономии (X - газонокосилка, вид наружного оборудования - это своего рода ...), становится проблемой с XML, так как вам нужно будет разработать некоторые внешние инструменты, чтобы обеспечить используя последовательный словарь. С RDBMS у вас просто есть таблица терминов, в которой есть родительские и дочерние идентификаторы. Любой предмет в магазине может просто ссылаться на идентификаторы таксономии.

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

0 голосов
/ 02 августа 2009

С другой стороны, вы можете посмотреть на json в couchdb.

0 голосов
/ 02 августа 2009

Если вы храните только транзакционные данные, у вас нет проблем, которые RDB не может решить. Но если ваши данные в большей степени ориентированы на документы (сложнее), вам может потребоваться взглянуть на любую из нескольких собственных баз данных xml и их интерфейсы XQuery.

eXist, Documentum xDB, Oracle Berkeley, MarkLogic (для больших вещей) - это только некоторые из них. Вы также можете быть заинтересованы в http://en.wikibooks.org/wiki/XRX

0 голосов
/ 19 мая 2009

Связанные, но не по теме: ты сказал "легкий"? в этом случае sqlite может побить как XML, так и базу данных ..

0 голосов
/ 19 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...