Таблица правил/метод в Access, кто-нибудь слышал об этом?

У нас есть 5000 продуктов с отдельными ценами и 200 клиентов, у которых могут быть разные цены на каждый из этих продуктов. Нам нужен какой-то способ, позволяющий отделу продаж изменять цены для отдельных клиентов, продуктов или диапазонов/категорий, не влияя на остальные цены для других клиентов.

Сейчас это делается путем копирования и вставки прайс-листа, внесения изменений вручную и импорта нового прайс-листа как категории. Это не то, чего мы хотим.

Мне рассказали о методе достижения того же результата, просто имея набор цен, хранящихся в доступе, а затем таблицу правил, которая применяет правило на основе такой информации, как:

  • Клиент
  • Продукт
  • Категория
  • Цена
  • Процент

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

В основном я спрашиваю, слышал ли кто-нибудь когда-либо об этом методе и где мы можем найти больше информации об этом методе и о том, как он работает/как его применять?

Заранее спасибо, Боб П.


person Bob P    schedule 04.10.2012    source источник
comment
Почему бы не использовать нормализованный способ использования таблицы цена/клиент, в которой хранятся идентификатор продукта, идентификатор клиента, цена и дата?   -  person Fionnuala    schedule 04.10.2012
comment
Потому что с 5000 продуктов и 200 клиентами это будет 1 000 000 записей, которые система должна будет хранить и проверять, чтобы вернуть единую цену?   -  person Bob P    schedule 04.10.2012
comment
Кроме того, такой метод правил допускает более гибкие временные структуры ценообразования, а также долгосрочные изменения? Также упрощается изменение цен для клиентов и отслеживание вносимых ими изменений?   -  person Bob P    schedule 04.10.2012
comment
@BobP: системе не нужно будет проверять 1 000 000 записей - только строки, связанные с текущим клиентом. Рему прав.   -  person No'am Newman    schedule 04.10.2012
comment
Получает ли покупатель А одинаковую процентную скидку (или надбавку) на все 5000 товаров? Или это скидка 10% на один продукт, без скидки на другой продукт и так далее?   -  person HansUp    schedule 04.10.2012
comment
Да, Ганс, это может быть сделано на заказ, когда у нас есть один клиент, у которого только одна цена отличается от всех остальных, и у нас могут быть сотни таких клиентов, с одним или двумя незначительными изменениями в структуре ценообразования.   -  person Bob P    schedule 05.10.2012


Ответы (1)


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

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

person No'am Newman    schedule 04.10.2012
comment
Это похоже на то, как мы хотим создать этот новый метод, однако вместо того, чтобы хранить все эти записи, просто сохраните одну простую строку, которая относится к покупателю, затем к продукту/категории, а затем к изменению цены (процент или фактическая цена). . Это позволяет осуществлять поиск, это позволит нашей команде по продажам искать правила ценообразования, которые они применили, и редактировать/удалять их. - person Bob P; 04.10.2012
comment
Кажется, что ваша программа не выдает SQL-запросы, а скорее рассматривает данные как простой рабочий лист, который нужно искать по одной строке за раз. С SQL может быть только одна строка, соответствующая комбинации продукта/покупателя, поэтому время доступа (без каламбура) незначительно. - person No'am Newman; 04.10.2012
comment
Позволит ли ваш метод, например, добавить процентную скидку? Вместо просто новой цены? И позволит ли это также сделать скидку на категорию, продукт, категорию для клиента, продукт для клиента или просто клиента? - person Bob P; 05.10.2012
comment
В таблице будут храниться данные для каждой комбинации продукта/покупателя. Простейшей реализацией было бы сохранение цены для каждой комбинации, хотя также практично хранить множитель/коэффициент скидки для одной и той же комбинации, т. е. основной прайс-лист показывает 100 долларов США для продукта A, специальная таблица показывает 5% скидку для [продукт A, клиент № 55], поэтому окончательная цена [продукт А, клиент № 55] будет 95 долларов. Скидка для всех клиентов (т. е. клиент № 62 всегда получает 10% скидку) должна выполняться через таблицу клиентов, поскольку она является собственностью клиента. - person No'am Newman; 05.10.2012