为线索化对话

问题描述:

数据库设计我有一个场景,看起来像这样:为线索化对话

  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每次需要回复时都需要输入相同的详细信息。
  • 我现在还无法想到其他任何东西,但我确信还有其他问题会出现在这种方法中。

基本上,我所寻找的是一个完整的陌生人参与与注册用户的对话,同时保持双方易用性的最佳解决方案。你们认为什么?我应该采取这种方法吗?有没有其他聪明的选择来解决类似的问题?

您可以在URL中使用有效的随机值(类似于会话ID),以便用户B必须拥有/知道此URL才能返回对话。当然,你可能想把这个URL发送给用户B(?),所以他仍然需要给你一些联系信息。如果您只是给了他一个链接或告诉他为该页面添加书签,那么就很容易“失去”对话并且无法继续。

最简单的答案往往是最好的。让用户注册。

但是你可以有两种用户:基本用户和高级用户。基本用户不需要很多注册方式 - 你甚至可以允许他们的电子邮件地址是可选的。高级用户必须包含所有的细节,他们才能使用所有功能。

这样,您有一对真正的注册用户可以相互通信,同时对新的基本用户而言,进入门槛非常低。