asp.net – 为什么aspnet_users使用guid来代替id而不是增加int?
为什么aspnet_users使用guid作为id而不是递增int?
还有什么理由不在其他表中使用它作为主键?感觉有点奇怪,因为我知道我以前使用的大多数应用程序只使用普通的int系统. 我也将开始使用此id来匹配扩展的详细信息表以获取额外的用户prefs等.我还在考虑使用带有guid和int的链接表,但我决定,因为我不认为我实际上需要将用户ID作为public int. 虽然我想有int(感觉更容易做用户查找等stackoverflow.com/users/12345/user-name),因为我只是要有用户名,我不认为我需要携带这个当我需要找到一个用户int时,周围的项目并且会增加查找的额外复杂性. 感谢您对此任何帮助. 解决方法
它确保了断开连接的系统的唯一性.可能需要与另一个先前未连接的数据存储区接口的任何数据存储都可能遇到冲突 – 例如他们都使用int来识别用户,现在我们必须经历一个复杂的解决过程,为冲突的ID选择新ID,并相应地更新所有引用.
在SQL中使用标准uniqueidentifier(使用newid())作为主键的缺点是GUID不是顺序的,因此创建新行时它们会插入物理数据库页面中的某个任意位置,而不是附加到结束.这会导致具有任何实质插入率的系统出现严重的页面碎片.可以使用newsequentialid()来纠正它.我在more detail here讨论过这个问题. 通常,最佳做法是将newsequentialid()用于GUID主键,或者仅使用GUID作为主键.您始终可以拥有存储GUID的辅助索引列,您可以使用该列来保持引用的唯一性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 当要复制的lob数据的插入长度超过配置的最大值6
- asp.net-mvc – 从部分视图添加html头标记的脚本引用
- asp.net-mvc – Owin自主和ASP .Net MVC
- 如何模拟我的ASP.NET应用程序的HTTP 500错误?
- asp.net-mvc – 如何从模型中为ASP.NET MVC DropDownList设
- 使用UpdatePanel单击按钮后更新ASP.NET标签
- azure – Request.Content.ReadAsMultipartAsync引发System
- asp.net-mvc-3 – 对复选框不起作用的MVC不显眼的验证
- asp.net – 在Response.End之前使用Response.Flush
- 找出ASP.NET WebForms中控件的生命周期的哪个阶段
- asp.net-mvc – MVC 3从web.config中的AppSettin
- 上载ASP.NET MVC Web api控制器中的文件
- asp.net-core – 如何在ASP.NET Core 2.0中实现m
- 如何使用ASP.NET身份实现多租户用户登录
- ASP.NET Web API为单个路由定制IHttpControllerS
- ASP.NET对txt文件相关操作(读取、写入、保存)
- ASP.NET站点在开发期间自动登录
- asp.net – foreach块缺少一个结束“}”字符.确保
- ASP.NET没有魔法——ASP.NET Identity 的“多重”
- .NET 3.5 / VS 2008上的ASP.NET Web Services的自