Sql 帮助构建邀请页面的流程

Sql 帮助构建邀请页面的流程,sql,sql-server-2008,database-design,Sql,Sql Server 2008,Database Design,我正在实现一个邀请页面,用户可以登录到他们的电子邮件帐户并从他们的通讯簿导入联系人。我的问题是关于这方面的数据库设计。我想为每个邀请的用户存储所有电子邮件,这样在后续访问邀请时,他们就不必登录。这也将允许我给朋友推荐等 我正在考虑创建一个名为contacts的新表,其中包含userid、contantname和contactemail字段。我意识到许多用户可能拥有相同的联系人,因此我想知道,将contactname和contactemail存储在单独的表中是否是一种好的db设计,或者在这种情况下

我正在实现一个邀请页面,用户可以登录到他们的电子邮件帐户并从他们的通讯簿导入联系人。我的问题是关于这方面的数据库设计。我想为每个邀请的用户存储所有电子邮件,这样在后续访问邀请时,他们就不必登录。这也将允许我给朋友推荐等

我正在考虑创建一个名为contacts的新表,其中包含userid、contantname和contactemail字段。我意识到许多用户可能拥有相同的联系人,因此我想知道,将contactname和contactemail存储在单独的表中是否是一种好的db设计,或者在这种情况下,将它们保存在同一个表中是否可以

我还想知道其他人是如何设计整个邀请流程的。例如,在我的例子中,对于系统中已经存在的每个联系人,我会提示用户跟随,如果联系人不在系统中,我会提示用户邀请他们。当被邀请用户注册时,用户和被邀请用户将自动相互跟踪,并且条目将从联系人数据库中删除。在多个用户都有联系人的情况下,一旦该联系人接受了一个用户的邀请,我将显示其他用户作为以下建议。这听起来不错,还是有更好的方法


谢谢

在您的域中,“联系人姓名”在功能上依赖于什么属性或属性集?是在用户ID上还是在contactemail上? 回答这个问题,你就回答你的问题。我有以下场景供您考虑:

假设有一封联系邮件:janedoe@example.com

在我的通讯录中,她的联系人是“Jane Doe”

在约翰·多伊的通讯录里,是“愚蠢的妹妹”

在简·多伊的电子邮件服务中,它是“简·玛丽·多伊”


如果在我或约翰·多伊邀请简之前,你已经知道“简·玛丽·多伊”,那么你有你的答案;contactname在功能上取决于contactemail。如果你没有,你有你的答案:这将永远不适合我看到,或我的邀请电子邮件简,通过一些路径依赖事件,以解决“愚蠢的妹妹”;contactname在功能上取决于用户ID和contactemail。

我修改了我的数据库,以便所有导入的联系人都进入用户表(以及一个状态字段,用于指示用户是否已注册)。然后是一个带有userid的contacts表,contactid(用户表中的用户是否已注册)。现在,在您的场景中,我想我可能必须在联系人表中添加姓名,以便每个用户都可以使用它。