我需要在数据库中插入一个假行吗?

时间:2011-01-16 03:45:58

标签: database openid

我有几张表,例如。

Users    Books    UsersBookPurchase
UID      BookId   UserId 
UName    Name     BookId
Password Price
Email

这很好。我有自己的登录系统,但我也使用一些第三方来验证像OpenID或Facebook身份验证。我的问题是,如果用户能够使用OpenID或facebook身份验证成功登录,我需要做什么步骤,即我必须在Users表中插入一个假行,因为如果我不插入将如何保持完整性。我的意思是当使用Facebook身份验证登录的用户因为UserId是Users表中的引用键而进行购买时,我应该在UsersBookPurchase中插入什么用户ID。请高度概述一下我需要做什么,因为这是相当普遍的情况。

提前致谢:)

2 个答案:

答案 0 :(得分:2)

基本上是的。不要把它当成假行。你应该做的是根据Facebook API提供的数据创建一个实际的用户帐户(我不熟悉OpenID)

Facebook API将为您提供姓名,电子邮件地址,或许其他一些数据 Facebook没有登录名的概念,用户通过电子邮件地址登录。

您所做的只是根据API提供的数据创建新用户。

有一些注意事项:用户可能已在您的网站上注册。当您从Facebook获取数据时,您应该搜索自己的用户表以查看该电子邮件地址是否已经属于您自己的注册用户,并且在这种情况下您可以做一些奇特的事情,例如将该用户标记为也有Facebook登录。

答案 1 :(得分:0)

如果我这样做,我会将登录信息抽象到一个单独的表中,并在User表中有某种类型。该类型用于标识使用的auth方法,即您自己的,Google等。如果用户确实使用其他方法进行选择,则您需要具有关联但具有不同类型。但是,这是一个新纪录。