Как сохранить продажную цену в таблице сведений о заказах? - PullRequest
0 голосов
/ 01 июля 2019

Я пишу простую транзакционную базу данных, чтобы практиковать свои навыки T-SQL. Если я продаю зонтик в своей таблице sales.orderdetails и получаю текущую розничную цену этого зонта из таблицы товаров и помещаю его в счет-фактуру, как я могу избежать получения неверных исторических данных отчета через 6 месяцев, когда я подниму Розничная цена зонта на 10 долларов США

Как сохранить эту проданную цену в таблице orderdetails, чтобы на нее не влияли какие-либо изменения в таблице товаров в будущем? Я знаю, что вы можете использовать SCD для хранилища данных для такого рода проблем, но мне было интересно, как это сделать в системе OLTP. Вычислили постоянный столбец? Кажется, не удается заставить это работать в проводнике объектов, когда я пытаюсь ввести items.retailprice в качестве вычисленного значения для столбца salesorderdetails.cost.

Ответы [ 2 ]

3 голосов
/ 01 июля 2019

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

1 голос
/ 01 июля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...