2012-07-17 57 views
0

我有一個自定義會員供應商,我擴展了 - 添加了幾個字段,名字,姓氏,地址,郵政編碼和城市。保存/存儲客戶採購訂單數據的最佳方法?

現在,這些字段駐留在aspnet_Membership表中,以便使用靜態Membership asp.net類時可以輕鬆訪問它們。

現在,我希望能夠將客戶購買訂單數據(名,姓,地址,郵政編碼和城市)保存到數據庫中。

我應該在我的訂單模型/表使用一組新的領域 - 名字,姓氏,地址,郵政編碼,城市還是應該創建我的asp_Membershihp表和我的訂單表之間的關係?另外,如果我有複製數據,一旦用戶要求他的帳戶被刪除,如果我使用第一種方法,我不會有Orders表中的任何孤行。

因此,最好只在一張表中創建用戶數據,名字,姓氏,地址,郵編,城市,並在aspnet_Membership表和訂單表之間創建關係,或者在我的訂單表中創建重複字段與aspnet_Membership表沒有任何關係?優點缺點?

謝謝!

/P

+0

難道第二種方法(重複數據,無關係)會導致您失去客戶端和訂單之間的跟蹤? – WDRust 2012-07-17 18:57:01

+0

是的。其實你給了我一個主意。也許最好的辦法是同時使用數據和關係?優點?缺點? – PussInBoots 2012-07-17 19:01:21

+0

關係是最好的方式,重複數據導致必須記住更新它的多個地方。我建議你有一個認證用戶表,用戶名錶/地址/等等,FK返回給用戶(userId),並且有一個FK返回給客戶的訂單表。如果有人刪除了他們的帳戶,請將該客戶標記爲不活動。你永遠不會丟失數據,沒有重複,所有的事情都應該正常化。 – Tommy 2012-07-17 19:08:24

回答

0

在這種情況下,我寧願有關係。

也是你正在存儲的數據訂單(我至少假設,從名稱:))我會在訂單上維護一組單獨的數據,因此可以選擇性地指定不同的結算/運輸數據它是網站上的身份。

在Order表上至少有一些數據重複的另一個有效原因是讓所有必要的數據與表中的Order相關,從而避免客戶請求刪除其數據並保持原始值對於訂單上的數據,如果客戶數據要及時更改。

但是,如果您可以,但實際上不應刪除用戶數據,但有一個字段用於指定User isActive或isDeleted。