首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自不同来源的用户表

来自不同来源的用户表
EN

Stack Overflow用户
提问于 2014-10-03 11:01:07
回答 2查看 36关注 0票数 0

在这种情况下:如果我有一个表用户,用户从默认注册和facebook注册。

代码语言:javascript
运行
复制
Table users
id | name
1    John (default)
2    Carl (default)
111  Steven (facebook)
...
111  Wayne (default)

如果id是自动增量和唯一的,当DBMS尝试从默认注册中插入id 111时,由于惟一的限制,我将得到一个错误,因为id 111是手动插入的。因此,DBMS应该知道id 111是否存在,下一个默认注册应该是112,而不是111。

有什么办法可以避免这个错误吗?或者,处理类似案件的最佳做法是什么?

让两个用户表看起来有点过于复杂,只是为了避免这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-03 11:14:29

以下是两种替代方法。

首先,如果用户只能以两种方式注册,则可以为每一列设置单独的列。因此,users表将包含如下列:

  • DefaultDateTime
  • FacebookDateTime

等等,为了你想要的任何专栏。当用户以“第二种”方式注册时,您将更新现有记录,而不是插入新记录。

第二种方法可能更好。有两张桌子:

  • 用户
  • 注册

Signups表将有一个外键关系返回到Users表(可能带有NOT NULL约束)。这两个表都有自动递增的整数主键。

显然,在您的数据模型中,注册与用户是分开的,因此您应该分别对它们进行建模。然后,您可以拥有任意数量的注册,为一个给定的用户。

票数 1
EN

Stack Overflow用户

发布于 2014-10-03 11:04:52

Maby您可以尝试从数据库中获取最大ID值,并将+1添加到数据库中,以便进行下一次插入。这样,您将始终在当前值之上得到一个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26177779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档