首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复合主键与自动增量主键

复合主键与自动增量主键
EN

Stack Overflow用户
提问于 2015-06-04 17:07:59
回答 1查看 1K关注 0票数 1

我正在寻求一些关于如何处理我们从另一个部门导入病例数据的表格的一些建议:

代码语言:javascript
复制
  Id    CreationDate                ClosedDate  LastUpdateDate            Name                                 Description          
DE5838  2015-06-02 06:14:11.11      NULL        2015-06-02 06:19:33.33    Look UP : Should be updated ...      Description : This is not a defect…          
DE5834  2015-06-01 16:16:03.03      NULL        2015-06-01 16:24:19.19    Sync error for Ultimate packages...  We are getting an error ....         
DE5822  2015-06-01 10:37:10.10      NULL        2015-06-01 10:37:10.10    Terminal subscription has expired... For given terminal serial number…            
DE5818  2015-06-01 09:53:44.44      NULL        2015-06-01 09:53:44.44    No Option Code…                      Allie pulled the report....          

相当长一段时间以来,我们一直将ID字段作为PK处理(而且没有从外部部门定义太多数据)--直到现在,我们才开始看到其他部门正在回收这些ID号(我知道,我知道--确实是个糟糕的主意)。

因此,留给我们的是我们试图导入的数据--但是我们的表不会接受它,因为唯一的标识符已经分配给了case数据。

我所想的可能是一个很好的解决方案,就是将PK更改为ID和CreationDate的组合(我们认为这可能是外部部门创建数据的方式),或者我可以添加一个自动递增的ID字段,并将它指定为我们已经拥有的所有数据的唯一标识符。

但是,由于这是一个继承的烂摊子,我最近走进,我正在寻求任何建议,如何进行这一工作。

EN

回答 1

Stack Overflow用户

发布于 2015-06-04 21:32:51

创建复合键不仅会使您更改索引,而且所有引用主键的表也必须添加附加列。我建议在表中添加一个标识字段。将当前ID字段重命名为类似于ReferenceNumber的内容。然后更新其他表中的所有外部引用以使用新的ID。然后可以将外键字段转换为整数字段。这最终将节省数据库中的空间,并可能导致将来更快的连接。

然后,您还必须确保更新了任何接口,以便通过ReferenceNumber / dateor新ID进行查找。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30650038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档