我有一个新的MVC5网络应用程序,目前,默认情况下, table:userprofile 存储用户名和userId。
CREATE TABLE [dbo].[UserProfile] (
[UserId] INT IDENTITY (1, 1) NOT NULL,
[UserName] NVARCHAR (MAX) NULL,
[FirstName] VARCHAR (MAX) NULL,
[LastName] VARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC)
);
表:webpages_membership存储userpassword。
CREATE TABLE [dbo].[webpages_Membership] (
[UserId] INT NOT NULL,
[CreateDate] DATETIME NULL,
[ConfirmationToken] NVARCHAR (128) NULL,
[IsConfirmed] BIT DEFAULT ((0)) NULL,
[LastPasswordFailureDate] DATETIME NULL,
[PasswordFailuresSinceLastSuccess] INT DEFAULT ((0)) NOT NULL,
[Password] NVARCHAR (128) NOT NULL,
[PasswordChangedDate] DATETIME NULL,
[PasswordSalt] NVARCHAR (128) NOT NULL,
[PasswordVerificationToken] NVARCHAR (128) NULL,
[PasswordVerificationTokenExpirationDate] DATETIME NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC)
);
我想将emailaddress和emailaddressConfirmed添加到表格中。我应该添加哪一个?或者构建一个包含所有内容的位表?
此外,我对会员资格和角色一无所知,我是否应该投入一些时间来了解它? (或者它只对深奥的东西有用吗?)
答案 0 :(得分:1)
这在很大程度上取决于用例,但一般来说,最好将它添加到UserProfile表中。
如果您希望用户在他/她的电子邮件地址上使用CRUD,那么将电子邮件字段存储在UserProfile表中最好是出于各种原因。
其他很多原因,其中很多我完全不了解,但这两个原因最重要,最大限度地减少了电话和代码的干净。也有理由反对它:
同样,各种用例和您的特定项目可能需要不同的设计,较小的独立项目可能需要一个设计,而大型企业项目可能需要更简化的设计和潜在的担忧,使其落入某个合法范围。
对于成员资格/角色,它们在企业级数据库设置中肯定是有用的,其中权限可能是必要的,但“你应该投入时间”太主观而不能真正回答。