Sql-Server
外鍵表更新影響
可以說
orders table
外鍵很少。其中之一是addressId
。Orders -- Id -- orderNum -- customerId -- addressId (foreign) CustomerAddress -- Id -- customerId -- street -- cityId -- areaId -- postal -- geo Customer -- Id -- Name -- more columns
現在當客戶更新個人資料中的地址時。即使對於連結到該記錄的過去訂單,更新的地址也會顯示。這不好。
我的想法解決方案是:-
- 創建一個新表(OrderAddress)。
- 下訂單時,從 CustomerAddress 插入 OrderAddress。
- 從 OrderAddress 中獲取新插入記錄的 addressId 並保存在 Order 記錄中。
這樣我可以確保訂單地址不會被修改,以防原始地址被修改。但它有點貴。
這是好習慣嗎?
我會維護兩個地址表。不是每個訂單的地址。這些將是…
- CustomerAddress - 永遠是他們的家庭住址。
- ShippingAddress - 這可能是他們希望將東西運送到的任何地方,即使它不是他們的家庭地址。
如果他們更新了他們的送貨地址,只需在送貨地址中插入一條新記錄並將其標記為活動或主要。這樣,所有之前的訂單仍然連結回送貨地址 1,所有未來的訂單都連結到送貨地址 2。