2011-04-01 68 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