【发布时间】:2012-02-01 15:26:25
【问题描述】:
我很好奇人们是如何处理以下情况的。假设我们有一个如下所示的用户表:
CREATE TABLE [dbo].[Users](
[UserId] [uniqueidentifier] NOT NULL,
[ProfileId] [uniqueidentifier] NULL,
[UserTypeId] [uniqueidentifier] NOT NULL,
[UserName] [varchar](150) NOT NULL,
[Password] [varchar](150) NOT NULL,
[Salt] [nchar](10) NOT NULL,
[ActivationCode] [char](8) NULL,
[InvalidLoginAttempts] [int] NOT NULL,
[IsLockedOut] [int] NOT NULL,
[LastLoginDate] [datetime2](7) NOT NULL,
[Active] [int] NOT NULL,
[DateCreated] [datetime2](7) NOT NULL,
[LastUpdated] [datetime2](7) NOT NULL,
所以这是我的实际问题。以前,当使用 int 进行 PK 时,如果用户未提供用户名,我可以插入用户并根据身份插入自动创建用户名。为什么会发生这种情况的示例。 “例如 OpenId 注册” 那么如何使用 guid 生成唯一的“计数”。我当然不想显示“welcome userXXX-XXX-XXX之类的。
我的想法可能是为此使用 int IDENTITY 构建一个单独的表并将 guid 存储在其中??
【问题讨论】:
-
Example of why this would happen. "OpenId Registration for instance"的部分不清楚。 -
我的 OPenId 注册不需要电子邮件地址。类似于 StackOverflow,所以我需要自动创建某种字符串值来识别我在幕后为他们创建的内部用户帐户。
-
是的,我明白了。好吧,我给它加了星标,我很想知道这个问题的解决方案。
-
迈克,这看起来很有趣databasejournal.com/features/mssql/…
-
我记得 DB2 中的类似内容
标签: sql-server-2008 database-design relational-database