使用哪种PK类型Int或BigInt或UniqueIdentifier

时间:2017-11-28 09:31:00

标签: sql-server

我们的团队正在开发一个新的医疗保健ERP数据库。在脑力激荡会议期间,我建议使用uniqueidentifier,因为它有许多好处,如

  • 如果我们从客户端应用程序
  • 生成值,则不会往返数据库OnInsert
  • 通过在客户端应用程序上生成它,我们可以更轻松地使用主从细节方法。
  • 它有助于数据复制
直到现在,我很自信,甚至我以为我会听到一些赞美,直到我的老板问我几个问题:

  • 您将使用此Guid作为群集索引的主键吗?
  • 你知道桌子的大小有多大以及它对性能的影响吗?
  • 部分开发者提出了Int和其他BigInt

我想知道我的Boss问题是否有基础或者我认为是真的,因为我认为建立具有复制支持的ERP是最好的。

注意我在这个网站以及其他网站上已经搜索了很长时间。

上述哪一项是在医疗保健信息系统等ERP中使用的最佳关键?

1 个答案:

答案 0 :(得分:1)

考虑一下贵公司的建议以及您的团队目前拥有的专业水平。显然,根据您的问题和经理的问题,它没有丰富的SQL服务器经验。在没有必要的专业知识的情况下,我无法合理地找到一种方法来开发企业级系统 - 尤其是对于您计划使用的后端系统。

你的过程(就像你描述的那样)听起来很有意思。 "头脑风暴"不是,IMO,你决定模式和选择键的点。并且不应该盲目地为每个主键选择特定的数据类型。但所有这一切都在猜测,而不知道你在这个过程中的位置。如果您的架构尚未修复(无论为每列选择了哪种数据类型),那么您还无法担心性能问题。

最后,您和您的经理会混淆两个相关但独立的属性。尽管MS开发团队做出了不幸的实现选择,但主键与聚簇索引不同。他们彼此独立;有意识地决定您的聚簇索引,并且不允许db引擎自动选择主键作为聚簇索引。

所以回答你的问题。是的 - 这些问题是有效的。但是,您的项目似乎尚未达到可以解决这些问题的程度。