我有一個表「AvailableProducts」具有以下字段:存儲更新
StoreID int,
ProductID int,
ProductPrice decimal,
IsAvailable bit
的ProductPrice
可以通過銷售人員在店內通過價格的改變可以或可以更新從品牌更新。 現在存儲的價格變化歷史,我創建了一個歷史記錄表如下:
Table ProductPriceHistory
UpdateID int,
StoreID int,
ProductID int,
ProductPrice decimal,
IsAvailable bit,
UpdatedBy int,
UpdatedAt datetime
我現在面臨的問題是,保持BrandID或SalesPersonID(即所做的更改價格)在UpdatedBy
場是錯誤的設計。
我可以修改它是這樣的:
Table ProductPriceHistory
UpdateID int,
StoreID int,
ProductID int,
ProductPrice decimal,
IsAvailable bit,
BrandId int,
SalesPersonID int,
UpdatedAt datetime
這將讓我在使用ID字段Brand
和SalesPerson
表的外鍵引用更新實體。但是它也會導致許多空列或空列值,因爲只有一個實體,即brand
或SalesPerson
可以在給定時間更新價格。
我還可以創建兩個不同的歷史表,以節省SalesPerson
和Brands
分別進行更新,但這種解決方案看起來並不吸引人。 任何有關此設計改進的建議,因爲我希望將此錶的歷史記錄保存在一張表中。謝謝:)
我正在使用SQL Server – Navdeep