2011-04-01 75 views
0

我正在實現一個邀請頁面,用戶可以登錄其電子郵件帳戶並從其地址簿中導入聯繫人。我的問題涉及到數據庫設計。我想爲每個邀請的用戶存儲所有電子郵件,以便在隨後訪問邀請時,他們不必登錄。這也可以讓我給朋友推薦等。幫助構建Invite頁面的流程

我在想創建一個與字段userid,contantname,contactemail聯繫的新表。我意識到許多用戶可能具有相同的聯繫人,所以我想知道是否將dbname和contactemail存儲在單獨的表上,或者如果在這種情況下將它們保留在同一個表中,是否可以使用db設計。

我也很想知道其他人如何構建整個邀請流程。在我的例子中,對於系統中已存在的每個聯繫人,我會提示用戶關注,如果聯繫人不在系統中,我會提示用戶邀請他們。當受邀用戶註冊時,用戶和受邀用戶將自動相互關注,並且該條目將從聯繫人數據庫中刪除。在聯繫人存在多個用戶的情況下,一旦該聯繫人接受來自一個用戶的邀請,我將顯示其他用戶作爲跟隨的建議。這聽起來不錯,還是有更好的方法呢?

謝謝。

回答

1

什麼屬性或屬性集是在您的域中功能上依賴的「聯繫人姓名」?它在userid或contactemail上? 回答這個問題,你回答你的問題。我有以下情況,你要考慮:

比方說,有一個contactemail:[email protected]

在我的地址簿,她的聯繫人姓名是「李四」

在李四的地址本書是「愚蠢的小妹妹」

在Jane Doe的電子郵件服務中,它是「Jane Mary Doe」。

如果在我或John Doe邀請Jane之前你已經知道「Jane Mary Doe」,那麼你有你的答案; contactname在功能上依賴於contactemail。如果你不這樣做,你會有答案:我不應該通過一些路徑依賴的事件來看我,或者我的邀請郵件給Jane,以解決「愚蠢的孩子姐姐」;聯繫人名稱在功能上依賴於用戶標識和聯繫人郵件。

+0

我修改了我的數據庫,以便所有導入的聯繫人將進入用戶表(以及狀態字段以指示用戶是否已註冊)。然後,使用userid,contactid(這是用戶表中的用戶或不註冊)的聯繫人表。現在,在您的情況下,我想我可能不得不在聯繫人表中添加姓名,這對每個用戶都是個人信息。 – Prabhu 2011-04-01 21:12:39