База данных NoSQL для ECommerce

Я буду создавать сайт электронной коммерции и хотел бы использовать базу данных no-sql, которая хорошо подойдет к планам приложения. Но когда дело доходит до того, какая база данных будет соответствовать задаче, я не уверен. После сравнения различных БД, те, которые кажутся лучшими, могут быть либо монго, либо кушеткой, либо даже ориентиром. Я видел аргументы для всех из них, которые будут использоваться или не использоваться по сравнению с чем-то вроде MySQL. Но между собой (базы данных nosql), которые хорошо подходят для решения электронной коммерции?

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

CouchDB: Имеет мастер для мастеринга репликации, который я действительно мог бы использовать. В противном случае мне все равно придется реализовать те же функциональные возможности в коде. Мне нужно иметь базу данных пользователей, синхронизировать с материнством. (у пользователей будет своя собственная, потенциально локальная база данных, которая может синхронизироваться с сервером основных доменов). Кушетка также быстро, как только ваши запросы были сохранены в db.As у меня, вероятно, будет более высокая потребность в производительности чтения. Хотя не много.

MongoDB: запросы очень просты и удобны для пользователя. Кроме того, с учетом того, что конечным пользователям может потребоваться запросить определенные вещи в определенный момент времени, что я, возможно, не смогу учесть заблаговременно, похоже, что это может быть лучше. Мне не нужно предварительно хранить мои запросы в db. Поддерживает ли атомные транзакции, но только при записи в один документ за раз.

OrientDB: база данных графа. сильно отличающийся от того, к чему привыкли большинство людей, но с потребностями он тоже очень хорошо подходит. Ориент имеет преимущества схемы, а также поддерживает транзакции ACID. Существует множество отношений с клиентами и продуктами, с которыми может работать карта графа. Orient также поддерживает мастер для репликации, аналогичный couchdb.

Не поймите меня неправильно, я вижу, как это традиционно строить с чем-то вроде MySQL, но простота и простота решения nosql очень привлекательна. Хотя в моем случае, нуждаясь в решении схемы, было бы намного проще в nosql, а не в mysql. данный продукт может иметь больше или меньше предметов, чем другой. и избегая воссоздания таблицы всякий раз, когда добавляется новое поле, предпочтительнее.

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

Изменить: причина, по которой я не использую существующее решение, заключается в том, что с интегрированными функциями, которые мне нужны, нет доступных решений. Мы также стремимся использовать это как полный продукт для нашей компании. Будет несколько других интеграций, чем продажа. Он также будет работать с системой POS магазина.

Ответ 1

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

При создании сайта электронной коммерции в одном из ранних соображений следует исследовать, есть ли уже установленный продукт или инструментарий электронной торговли, который мог бы удовлетворить ваши требования. Существует много тонкостей процессов, таких как упорядочение, выставление счетов, платежей, продуктов и отношений с клиентами, даже если ваш случай использования кажется простым. Также может быть возможно отделить ваше приложение в аспектах "управление каталогом" (возможно, больше пользовательских) по сравнению с "выставлением счетов" (потенциально третьей стороной, возможно, даже через поддерживаемый платежный/платежный API).

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

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

Тем не менее, написание системы электронной коммерции представляется обрядом для многих разработчиков, -).

Для MongoDB, в частности, вы можете посмотреть:

  • Вперед - новая платформа для электронной коммерции с открытым исходным кодом, использующая MongoDB (с выражением о намерении поддерживать другие базы данных). В настоящее время описывается как "частная бета-версия", но стоит изучить (и, по-видимому, уже используется для нескольких живых сайтов). Я заметил, что недавно было упомянуто в блоге MongoDB: Как MongoDB упрощает создание пользовательской электронной коммерции.

  • MongoDB и электронная коммерция - сообщение в блоге от Кайла Банкера, автора книги Manning MongoDB In Action. Это несколько лет, но есть интересное обсуждение соображений моделирования данных; также было проведено наблюдение за E-Commerce Inventory. Примечание. Параметры aggregation и , доступные для MongoDB, значительно улучшились с тех постов.

  • Выполнять двухфазные фиксации - шаблон проектирования для обновления нескольких документов в MongoDB

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

Ответ 2

Проверьте сравнение различных доступных баз данных NoSql здесь. Соответствуйте своему требованию согласно этому.