對於允許訪客結賬和註冊用戶結賬的電子商務網站,您將如何處理2個不同的客戶羣?註冊客戶和訪客結帳的數據庫模式
你存儲兩組在同一個表
customers
其中有一個外鍵customer_group_id
指向另一個表customer_groups
?在這種情況下,你會擔心重複客人結賬「污染」customers
表嗎?爲兩個客戶羣捕獲的信息將如何不同?我想不同的是,客人結帳客戶將不會有密碼多數民衆贊成它。
對於允許訪客結賬和註冊用戶結賬的電子商務網站,您將如何處理2個不同的客戶羣?註冊客戶和訪客結帳的數據庫模式
你存儲兩組在同一個表customers
其中有一個外鍵customer_group_id
指向另一個表customer_groups
?在這種情況下,你會擔心重複客人結賬「污染」customers
表嗎?
爲兩個客戶羣捕獲的信息將如何不同?我想不同的是,客人結帳客戶將不會有密碼多數民衆贊成它。
公共實體是Checkout。來賓結賬將是結賬實體到註冊用戶實體的空FK鏈接。
我直接在訂單中存儲客戶信息,而不是依賴客戶記錄中的信息。那做了幾件事情:
我將訂單信息視爲歷史數據。它不應該因爲數據庫中的其他內容改變而改變。例如,如果我從您處訂購了一些東西,並且稍後我將移動並更新我的結算和運送信息,則您仍應該知道先前的訂單已付帳且已發送到以前的地址。如果您依賴客戶和訂單之間的關係來保留帳單並將信息發送給我,一旦我移動並更新我的個人資料,您認爲您已發送到我的新地址。您可能不會將此視爲問題,但會是。
如果客戶有賬戶,您仍然可以從客戶記錄中獲取當前信息以填充訂單中的字段。對於一個客人,他必須每次輸入。
使總感覺! – Nyxynyx
您會將運費/賬單信息存儲在'checkouts'表中嗎?如果是這樣,這是否意味着您必須在「用戶」和「結賬」表中存儲運費/結算信息。 – Nyxynyx
訂單有運費和帳單地址。客戶可以擁有送貨地址和賬單地址。只需要有一個唯一的地址,然後是兩個鏈接表。與在電子商務網站上訂購時類似,在發貨或結算選項下的「設置爲我的默認地址」選項告訴數據庫在客戶端使用相同的地址,以便在訂單方使用。 – joezen777