EF 4.0 Guid или Int в качестве первичного ключа

Я реализую пользовательский ASPNetMembership с использованием EF 4.0

Есть ли какая-либо причина, по которой я должен использовать Guid в качестве первичного ключа в таблицах пользователей?

Насколько я знаю Int как PK на SQL Server более производительный, чем строки.

И Int легче итерировать. Кроме того, в целях безопасности, если мне нужно передать какой-либо int id где-нибудь, например, в URL, я могу как-то его зашифровать и передать как строку без проб.

Но если я хочу использовать автоматически сгенерированный Guid на стороне SQL Server с использованием EF 4.0, мне нужно сделать этот трюк http://leedumond.com/blog/using-a-guid-as-an-entitykey- in-entity-framework-4 /

Я не вижу ни одного случая, почему я должен использовать Guid в качестве PK, может быть только один, если система будет иметь миллионы и миллионы пользователей, но также, теоретически , Guid может дублироваться когда-нибудь, не так ли?

В любом случае размер Int32 равен 2 147 483,647, это довольно много даже для очень-очень большой системы, но если этого числа все еще недостаточно, я могу пойти с Int64, в этом случае у меня может быть 9 223,372,036,854,775,880 строк. В значительной степени, да?

С другой стороны, M $ использует Guids в качестве PK в своей реализации ASPNetMembership. [aspnetdb]. [aspnet_Users] -> PK UserId Тип uniqueidentifier, должно быть несколько причин / объяснений, почему он это сделал?!

Может быть, у кого-то есть какие-то идеи / опыт по этому поводу?

8
задан Kuncevič 5 January 2011 в 03:49
поделиться