Лучшее хранилище базы данных для соответствия продуктов из предложений - PullRequest
0 голосов
/ 14 октября 2019

У меня следующая проблема. У меня есть продукты, предложения и их параметры (в MySQL около 300 000 000 строк). На основании параметров предложения и их скорости (параметры являются динамическими, и каждый тип параметра имеет различную скорость), я должен присоединить предложения к продукту. Конечно, будет много обновлений, удалений или вставок (например, около 5000req / s). Вторая функция будет отправлять эти подключенные данные через API. Кто-нибудь есть какие-либо рекомендации, что NoSQL, реляционная база данных или что-то подобное использовать для хранения? Спасибо

РЕДАКТИРОВАТЬ: я покажу мой пример на небольшой выборке данных в MySQL:

Offer

+----------+-----------------+
| offer_id |      name       |
+----------+-----------------+
|        1 | iphone_se_black |
|        2 | iphone_se_red   |
|        3 | iphone_se_white |
+----------+-----------------+

Parameter_rating
+--------------+----------------+--------+
| parameter_id | parameter_name | rating |
+--------------+----------------+--------+
|            1 | os             |     10 |
|            2 | processor      |     10 |
|            3 | ram            |     10 |
|            4 | color          |      1 |
+--------------+----------------+--------+


Parameter value
+----+--------------+----------------+
| id | parameter_id |     value      |
+----+--------------+----------------+
|  1 |            1 | iOS            |
|  2 |            2 | some_processor |
|  3 |            3 | 2GB            |
|  4 |            4 | black          |
|  5 |            4 | red            |
|  6 |            4 | white          |
+----+--------------+----------------+

Parameter_to_value
+----------+--------------------+
| offer_id | parameter_value_id |
+----------+--------------------+
|        1 |                  1 |
|        1 |                  2 |
|        1 |                  3 |
|        1 |                  4 |
|        2 |                  1 |
|        2 |                  2 |
|        2 |                  3 |
|        2 |                  5 |
|        3 |                  1 |
|        3 |                  2 |
|        3 |                  3 |
|        3 |                  6 |
+----------+--------------------+

и на основе этих данных я должен вернуть, что ставки 1,2 и 3 являются однимпродукт. Самая большая проблема в том, что данные часто меняются. Например, изменение цен, удаление предложений и т. Д. Поэтому я не думаю, что MySQL является наиболее подходящей технологией, и я пытаюсь выбрать другую.

1 Ответ

2 голосов
/ 17 октября 2019

Платформа

какие-либо рекомендации, что NoSQL, реляционная база данных или что-то подобное использовать для хранения?

Поэтому я не думаю, что MySQL является наиболее подходящей технологией, и я пытаюсь выбрать другую.

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

Но они используют подлинные платформы SQL. Пакеты бесплатных / условно-бесплатных / vapourware / нигде, такие как MySQL и PusGresql, не являются ни SQL-совместимыми, ни жизнеспособными платформами для высокопроизводительных систем OLTP (без серверной архитектуры; без транзакций ACID; и т. Д.). Они все еще реализуют основы, которые платформы SQL использовали с 1984 года, что очень сложно (невозможно!), Поскольку у них нет серверной архитектуры.

Поэтому My NON sql и PusGre NON sql не подходят по причине некачественной работы;нулевой параллелизм;и т.д., а не для каких-либо проблем проектирования базы данных.

Чтобы оценить ценность подлинной архитектуры OLTP-сервера , см. Oracle против Sybase ASE . Хотя эта статья явно касается Oracle, она применима ко всем бесплатным программам, поскольку все бесплатные программы имеют ту же не-архитектуру, что и Oracle. На самом деле, даже меньше, чем Oracle. Вы получаете то, за что платите.

Анализ данных

Этот ответ ограничен Реляционными базами данных;SQL, его обозначенный подъязык данных;и подлинная коммерчески жизнеспособная платформа SQL.

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

Однако ваш вопрос недостаточно ясен, чтобы на него можно было ответить. Вы делаете много предположений, что мы не являемся стороной. Позвольте мне задать некоторые наводящие вопросы, на которые вы должны рассмотреть и ответить (обновите свой Вопрос):

  • Каковы основные вещи , с которыми системы совершают операции, против которых?
    (такие продукты, как телефоны?)

  • как эти вещи идентифицированы ?
    (Не ID, но как люди идентифицируют каждоговещь)

  • Каковы свойства этих вещей?
    (пожалуйста, не «параметр» ... возможно OS; RAM; Processor; Colour)?
    Тогда значения свойств могут быть поняты
    (Вы не можете связываться с атрибутами вещи, если не держите и не поддерживаете вещь)

  • что такое операции или транзакции против этих вещей

    • (a) внутренние или административные транзакции
      (например, AddProperty; AddPropertyValue; AddProduct; и т.д.)
    • (b) транзакции внешних или онлайн пользователей
      (например, BidProduct [предложение купить]; CloseBid; и т. д.)
  • кто является операторами , которым разрешены эти транзакции?
    (например,Админы;поставщики продукции;онлайн-торговцы;и т.д.)

  • Я не могу понять ваш Parameter_to_value, пожалуйста, объясните

  • Что такое rating? Какой-то вес для свойства против других свойств, или что-то, что заявители объявили?

Разработка базы данных • Предварительно

XWizardER

  • Это может занять несколько итераций.
  • Не беспокойтесь о полях ID в каждом файле: сначала мы должны понять данные, как они связаны с другими данными и как их идентифицировать,Мы можем добавить ID поля в конце.

Примечание

  • Все мои модели данных отображаются в IDEF1X , стандарте для моделирования реляционныхбазы данных с 1993 года
  • My IDEF1X Введение является необходимым чтением для начинающих.
  • Анатомия IDEF1X - это переподготовка для тех, кто скончался.
  • Если у вас естьпроблема чтение Предикаты из модели данных, дайте мне знать, и я представлю их в текстовом виде.

Пожалуйста, не стесняйтесь задавать вопросы, чем конкретнее, тем лучше.

...