2010-10-13 61 views
6

我有一個有3個地址的模型:拾取,放下和計費。我認爲賬單地址通常是取貨地址或送貨地址,因此從UI的角度來看,我應該有一個「相同」選項。但從數據庫的角度來看,我應該保存「相同」字段,還是應該複製數據?如何存儲「相同」的數據?

回答

4

在兩個不同的列PickUp和DropOff中,您應該在地址表中具有相同的行ID。這樣,您不會複製地址,也不會使用一些定位地址,並且可以輕鬆地查詢PickUp地址是否與DropOff相同。如果將來發生這些更改之一,則始終可以將存儲在其各列中的Id值修改爲新地址。

+0

正確...顯而易見的解決方案。當我想到這件事時,我認爲我的腦海裏充滿了混亂的問題(還有一個「另存爲預設」......) – mpen 2010-10-13 21:08:39

2

您可以創建一個名爲「地址」的表格,併爲該地址表格創建代答,遞送,計費FK。

2

只因爲地址是相同的物理地址並不意味着它是相同的概念地址。真的,John Doe的地址可能是「123 Elm St.」,但在概念上他的地址是「John Doe的郵寄地址」。

尤其是,對於地址我想說的可以和應該可以在數據庫內,因爲這個簡單的情況下複製:考慮誰住在同一地址的兩個人。現在其中一個動作。如果您只儲存一次地址,更新「移動者」的地址就會更新原來的室友地址。

但一般來說,請考慮數據如何與其他數據綁定。如果有多件事情可以與它相關聯,請確保對其中一件事的改變應該影響他們。

+0

好點,取決於場景。 – mpen 2010-10-13 21:10:50

1

alt text

+0

哈哈...可愛!你不必畫我的圖,但謝謝:) – mpen 2010-10-13 21:27:07

相關問題