2013-09-14 2 views
-2

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

Цена продукта может быть скорректирована в любое время, когда у меня нет контроля.

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

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

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

это в настоящее время, как этого [продукты] - [order_products] - [Заказы]

и I 'd изменить его, чтобы добавить еще одну таблицу, объединенную в [order_products] - [order_product_prices]

Я только что установил его, поэтому order_products также ссылается на используемую цену, но веб-сайты могут продавать билеты на события, которые охватывают несколько дней, и каждый из этих дней отправляется по индивидуальному заказу, поэтому, пока продукт [event_one], он по цене [ event_one_day1], [event_one_day2], [event_one_day3], где каждый день оценивается отдельно.

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

ответ

0

Если я прав, ваши цены действительны только в течение определенного времени.

Для этого вам нужна таблица. В этом случае я хотел бы предложить таблицу, как это:

product_id price valid_from valid_to  
1   14.99 2013-09-07 2013-09-08 
1   16.99 2013-09-09 2013-09-10 
1   17.99 2013-09-11 2013-09-12 

Итак, теперь вы можете запросить текущую цену с:

SELECT PRICE 
    FROM PRICES 
WHERE PRODUCT_ID = %yourproduct% 
    AND %current_date% BETWEEN VALID_FROM AND VALID_TO 

Для счетов-фактур, я бы хранить уплаченную цену отдельно с фактурой. Это значительно облегчает резервное копирование данных фактурирования и посещений IRS и, что еще менее болезненно.

+0

У меня это нормально работает, я могу поднять соответствующие ставки за конкретное время, которое мне нужно. проблема заключается в том, когда происходит транзакция, мне нужно сохранить цену, которую заплатил клиент, сложная часть заключается в том, что они могут покупать билеты на мероприятия, которые охватывают несколько дней. каждый день должен иметь свою собственную цену на билет, я не могу просто сохранить общую цену (из-за соображений бизнес-логики) – Adrian

+0

Возможно, создайте какую-то иерархию для продуктов. Создавайте продукты таким образом, чтобы они имели определенную (определяемую) цену за определенный период времени. Затем создайте продукты, которые состоят из нескольких элементов элементарных продуктов. Но это не вопрос программирования, это просто дизайн. Вы упомянули причины бизнес-логики, почему вы не можете сохранить общую цену. Я не знаю этих причин, так как не знаю вашего бизнеса. Но это кажется немного странным для меня. Я имею в виду, вы, надеюсь, покажете полную цену для клиента в какой-то момент, не так ли? Так почему бы вам просто не взять эту цену? – Silahe

Смежные вопросы