Nano Hash - криптовалюты, майнинг, программирование

mySql — лучший способ смоделировать таблицу ценовых скидок для оптовых закупок — рекурсия?

Создание магазина электронной коммерции и желание предлагать скидки при оптовых заказах. Каждый продукт может иметь разные уровни скидок.

например различные % скидки в зависимости от заказанного количества.

Product  : Quantity Bands[discount]
Product A: 1-10[0%], 11-20[5%], 21-50[15%], 51+[20%]
Product B: 1-5[0%],  6-10[10%], 10+[30%]
Product C: 1-10[0%], 11-20[5%], 21-50[15%], 51+[20%]

Немного смущен тем, как я должен моделировать это в базе данных...

Моя первоначальная мысль состояла в том, чтобы смоделировать мою таблицу скидок как самореферентный список смежности. Таблица продуктов будет иметь Discount_id, чтобы определить, к какой группе скидок она принадлежит.

e.g.

discounts table:
id int
name string
discount decimal
parent_id int nullable

Пример данных:

id   name    discount child_id
=============================================
1    1-10    0        2
2    11-20   0.05     3
3    21-50   0.15     4
4    51+     0.20     null
=============================================
5    1-5    0         6
6    6-10   0.10      7
7    10+    0.30      null
=============================================

таблица продуктов

id int
name string
base_price decimal
discount_id

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

Я полностью не в теме или есть лучший способ моделирования этих данных?

29.10.2013

  • Как насчет таблицы Discounts, в которой есть запись для каждого диапазона скидок на товар? 29.10.2013
  • Не уверен, что вы имеете в виду, но я обновил вопрос своим ходом мыслей... 29.10.2013
  • Как насчет таблицы Скидки с полями: id, QtyRangeLow, QtyRangeHigh, Discount, ProductID 29.10.2013
  • Разделив диапазон количества на два отдельных поля, его будет легко запрашивать. 29.10.2013
  • Спасибо. Но тогда не означает ли это, что мне придется создавать совершенно новую стратегию скидок для каждого продукта в базе данных? 29.10.2013
  • Почему у вас должна быть скидка с ребенком, я так и не понял. Я сделал некоторые электронные коммерции и никогда не видел его раньше. Все, что я сделал, было похоже на product(fields) discounts_ranges(id, minRange, maxRange, discount) и productDiscount( idProduct, idDiscount, startDate, endDate ) таким образом, я мог установить продукт с разными диапазонами для разных периодов года. 30.10.2013
  • И в некоторых из них (конечно, не в электронной коммерции) я мог связать продукт с диапазоном скидок продавцу, поэтому только какой-то продавец мог уступить определенные диапазоны скидок. 30.10.2013
  • Теперь я понимаю ваш вопрос... не увидел, что диапазон указан по количеству продуктов. Вы могли бы использовать мою идею, добавив поле для представления количества продуктов для таблицы discounts_ranges 30.10.2013
  • Или еще одна идея - забыть о child_id и вместо этого разделить диапазоны, чтобы, когда кто-то что-то покупает, вы видели, в каком диапазоне купленная сумма соответствует таблице скидок. 30.10.2013

Ответы:


1

вам нужна таблица с 4 полями

id product_id скидка уровня

e.g.

1 1 1 0
2 1 11 5
3 1 21 15
4 1 51 20

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

05.01.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

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