Sql OAuth使用者模型的主键
我一生都在为我的实体使用自动递增主键值。也就是说,一个Sql OAuth使用者模型的主键,sql,sql-server,database,oauth,oauth-2.0,Sql,Sql Server,Database,Oauth,Oauth 2.0,我一生都在为我的实体使用自动递增主键值。也就是说,一个int主键 即使是现在,当我阅读关于使用什么作为主键的讨论时,获胜的小组总是支持int键的小组 但是,假设我想存储使用我的web服务的消费者列表。具体来说,是OAuth客户 将存储consumerId和ConsumerCret以及其他相关信息 现在,当用户注册为新消费者时,将生成consumerId。这个id应该是唯一的 在这种情况下使用int主键是否有优势?事实上,消费者在登录时会向我提供他们的id,而不是他们的int主键。因此,查询将使用
int
主键
即使是现在,当我阅读关于使用什么作为主键的讨论时,获胜的小组总是支持int
键的小组
但是,假设我想存储使用我的web服务的消费者列表。具体来说,是OAuth客户
将存储consumerId
和ConsumerCret
以及其他相关信息
现在,当用户注册为新消费者时,将生成consumerId
。这个id
应该是唯一的
在这种情况下使用int
主键是否有优势?事实上,消费者在登录时会向我提供他们的id
,而不是他们的int主键
。因此,查询将使用此id
进行搜索
同样重要的是,这个id
将具有64个字符的固定长度,因此索引应该比使用nvarchar
更好
使用nchar
主键的优点和缺点是什么
PS:我使用Microsoft SQL Server作为数据库引擎。非数字主键会带来额外的开销 -->>>在搜索这张表格时,该引擎与特区政府进行比较所需的时间稍长 -->>>在任何DML(Insert、Update、Delete)期间,引擎可能需要对整个树进行洗牌以保持平衡,并且由于大数据类型的变化,可能会导致性能下降 但是在您的情况下,正如您所说,搜索将在
ConsumerID
上进行,将此列编入索引是有意义的。非聚集索引只会增加查找
我认为最好的选择是根本不去寻找索引,而是使用功能来搜索ConsumerID
标记