数据库 – 在“人员”主键和“产品”表的自然键之间进行确定
|
基本上,我将需要将来自多个供应商的产品数据组合成一个单一的数据库(当然比这更复杂),其中有几个表需要大多数OLTP操作连接在一起。 我将坚持使用默认值,并使用自动递增整数作为主键,但是当一个供应商提供自己的“ProductiD”字段时,其余的不需要,我将不得不做很多手动映射到另一个表然后加载数据(因为我必须首先将其加载到Products表中,然后将ID和其他信息一起添加到其他表中)。 或者,我可以使用产品的SKU作为主要关键,因为SKU是唯一的产品,所有的供应商都在其数据Feed中提供SKU。如果我使用SKU作为PK,那么我可以轻松地加载数据源,因为所有内容都是基于SKU的,这是它在现实世界中的工作原理。然而,SKU是字母数字的,并且可能比基于整数的键稍微有效。 我应该看什么想法? 解决方法这是 surrogate and natural primary keys之间的选择。IMHO总是喜欢替代主键。主键不应该有意义,因为这个意思可以改变。甚至国名也可以改变,国家也可以生存和消失,更不用说产品了。绝对不建议更改主键,这可以通过自然键进行。 更多关于surrogate vs primary keys:
还有Surrogate Keys vs Natural Keys for Primary Key? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server 2016 查询存储性能优化小结
- Mysql中explain作用详解
- 转义SQL中的特殊字符
- sql-server-2005 – 为什么数据库版本控制不像应用程序版本
- SQL Server TRUNCATE 快速删除表中的所有数据
- sql-server – 执行计划与STATISTICS IO订单
- 数据库SQL中having和where的用法区别
- sql-server – 如何使用除标识列之外的每一列复制行(SQL Se
- SQL Server 数据库主键的生成方式小结(sqlserver,mysql)
- sql-server – 在LINQ查询中使用DateTime?.Value.TimeOfDa
