相关疑难解决方法(0)

使用GUID作为主键的最佳做法是什么,特别是在性能方面?

我有一个应用程序在几乎所有表中使用GUID作为主键,我已经读过使用GUID作为主键时存在性能问题.老实说,我没有看到任何问题,但我即将开始一个新的应用程序,我仍然想使用GUID作为主键,但我想使用复合主键(GUID和可能是另一个字段) .)

我正在使用GUID,因为当您拥有不同的环境(如"生产","测试"和"开发"数据库)以及数据库之间的迁移数据时,它们很好并且易于管理.

我将使用Entity Framework 4.3,我想在将其插入数据库之前在应用程序代码中分配Guid.(即我不想让SQL生成Guid).

创建基于GUID的主键的最佳做法是什么,以避免与此方法相关的假设性能命中?

sql-server database-design entity-framework guid primary-key

311
推荐指数
4
解决办法
15万
查看次数

你觉得你的主键怎么样?

在我的团队的一个相当生气勃勃的讨论中,我被认为是大多数人喜欢的主键.我们有以下小组 -

  1. Int/BigInt哪个自动增量是足够好的主键.
  2. 应该至少有3列构成主键.
  3. Id,GUID和人类可读行标识符都应该区别对待.

什么是PK的最佳方法?如果你可以证明你的意见,这将是很棒的.上面有没有更好的方法?

编辑:任何人都有一个简单的样本/算法来生成可扩展的行的人类可读标识符?

algorithm ddl database-design primary-key relational-database

85
推荐指数
11
解决办法
2万
查看次数

适用于非常大的应用程序的ASP.NET自定义成员

我必须为一个非常大的网站提供会员解决方案.该站点将使用ASP.NET MVC 2和MS SQL2008数据库构建.

目前的会员提供商看起来似乎有点过分,功能太多了.

我要存储的只是电子邮件/密码和基本个人资料信息,例如First/LastName,电话号码.我只需要2个角色,管理员和用户.

考虑到可能有数百万用户注册,您对此类情景有何建议?StackOverflow使用什么?

我过去经常使用现有的会员API,并将其扩展到存储其他信息等.但是有表格如

aspnet_Applications
aspnet_Paths
aspnet_SchemaVersions
aspnet_WebEvent_Events
aspnet_PersonalizationAllUsers
aspnet_PersonalizationPerUser
Run Code Online (Sandbox Code Playgroud)

这是非常多余的,我从来没有找到用途.

编辑
只是为了澄清@drachenstern回答之后的一些其他冗余,还有一些额外的列,我在Membership/Users表中没有用,但会添加到每个select/insert语句的有效负载中.

  1. MobilePIN
  2. PasswordQuestion/PasswordAnswer (我会做基于电子邮件的密码恢复)
  3. 已批准(用户将始终获得批准)
  4. 评论
  5. MobileAlias
  6. 用户名/ LoweredUsername (或Email/LoweredEmail) [email是用户名,因此只需要其中的1个]

此外,我听说GUID并不是那么快,而且更愿意使用整数(就像Facebook那样),这也是公开曝光的.

我如何创建自己的成员资格提供程序,重新使用一些成员资格API (验证,密码加密,登录cookie等),但只能使用符合我要求的表格?

我们非常欢迎链接到文章和现有实施,我的谷歌搜索返回了一些非常基本的例子.

在此先感谢
Marko

c# sql asp.net-mvc asp.net-membership login

9
推荐指数
2
解决办法
2612
查看次数

GUID是终极ID吗?

我注意到有些人不打扰通常增加的数字作为ID,而只是生成一个GUID.优点包括:

  • 快捷方便
  • 无需跟踪以前的ID
  • 即使在不相互了解的机器之间也能保证独一无二

一些缺点是:

  • 可能是性能瓶颈
  • 使用大量字节

我的理解是,在大多数情况下使用GUID是有益的,除非时间或空间的优化是个问题.我错过了什么?或者你同意这个想法吗?

guid

6
推荐指数
1
解决办法
637
查看次数