2009-07-13 35 views
0

數據庫設計我有一個場景,看起來像這樣:爲線索化對話

  1. 用戶A是一個註冊用戶。
  2. 用戶B只是一個訪問者(未註冊)。
  3. 用戶B需要發送消息給用戶A(無需註冊)。
  4. 用戶A需要回複用戶B.
  5. 重複步驟3 & 4無限。

所以基本上我實現了這個簡單的表結構:

id 
id_message (= 0 on first contact or = id on replies) 
from 
to 
message 
date_created 

的想法是,每個地方id_message等於0的消息將有它的公共URL,這樣雙方都可以訪問它,看看線程交談。對於用戶A,我只需要存儲他的用戶ID。對於用戶B,由於他沒有註冊,我需要存儲他的姓名,電話/手機號碼和電子郵件地址(當然是序列號)。每次發佈新消息時,對方都會收到有關更新的警告電子郵件。

不過,我看到了一些問題,這種方法:

  • 的用戶B的細節序列化似乎並沒有「正確」。
  • 用戶B每次需要回復時都需要輸入相同的詳細信息。
  • 我現在還無法想到其他任何東西,但我確信還有其他問題會出現在這種方法中。

基本上,我所尋找的是一個完整的陌生人蔘與與註冊用戶的對話,同時保持雙方易用性的最佳解決方案。你們認爲什麼?我應該採取這種方法嗎?有沒有其他聰明的選擇來解決類似的問題?

回答

1

您可以在URL中使用有效的隨機值(類似於會話ID),以便用戶B必須擁有/知道此URL才能返回對話。當然,你可能想把這個URL發送給用戶B(?),所以他仍然需要給你一些聯繫信息。如果您只是給了他一個鏈接或告訴他爲該頁面添加書籤,那麼就很容易「失去」對話並且無法繼續。

1

最簡單的答案往往是最好的。讓用戶註冊。

但是你可以有兩種用戶:基本用戶和高級用戶。基本用戶不需要很多註冊方式 - 你甚至可以允許他們的電子郵件地址是可選的。高級用戶必須包含所有的細節,他們才能使用所有功能。

這樣,您有一對真正的註冊用戶可以相互通信,同時對新的基本用戶而言,進入門檻非常低。