我将开始开发一个人力资源(HRMS)应用程序,我一直在考虑为数据库主键选择最佳数据类型。
该应用程序有几个必须具备的:
- JavaScript框架(ExtJS)
- ASP.NET WebAPI服务器端
- 多租户功能(数据库设计)
在使用Entity Framework和增量INT
作为主键之前,我开发过其他企业应用程序,但有时在处理手动导入等问题时会遇到麻烦。因为主键是动态的。
所以我一直在考虑使用GUID
s作为主键,因为它在数据管理方面给你带来了很多好处,但我想知道它在实体框架中是如何执行的。在我的所有表中使用主键是否有副作用?
我认为在服务器端使用GUID
s的唯一缺点是Payload
到客户端,因为从服务器发送到客户端的每个JSON都会在每个记录上有一个GUID
(36个字符而不是简单的INT)。
1条答案
按热度按时间mqkwyuun1#
没有缺点,我知道,除了它可以更难调试时,试图比较GUID的。(整数更容易阅读)。我看到的主要好处是,在执行插入操作时,您不需要锁定表,因为您只需输入“Guid.new“(类似的东西),它实际上就可以保证是唯一的。
我一直使用Guid作为EF的主键,所以我相信它工作得很好。除非你的表格记录非常非常短,否则我不认为长度是重要的。
我的两分钱。