问题标签 [primary-key]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 复合主键是否应该聚集在 SQL Server 中?
考虑这个示例表(假设 SQL Server 2005):
我正在考虑包含两个 product_id 列(我肯定想要一个唯一约束)的复合主键,而不是一个单独的唯一 ID 列。问题是,从性能的角度来看,该主键是否应该集群?
我是否还应该在每个 ID 列上创建一个索引,以便更快地查找外键?我相信这张表在读比写上会受到更多的打击。
algorithm - 你喜欢你的主键吗?
在我团队的一次相当热烈的讨论中,我被迫思考大多数人喜欢什么作为主键。我们有以下小组-
- Int/ BigInt 哪个自动增量是足够好的主键。
- 应该至少有 3 列构成主键。
- Id、GUID 和人类可读的行标识符都应该区别对待。
PK的最佳方法是什么?如果你能证明你的观点是正确的,那就太棒了。有没有比上述更好的方法?
编辑:任何人都有一个简单的示例/算法来为可扩展的行生成人类可读的标识符?
sql - 在 SQL 脚本中引用生成的主键
我正在尝试使用单个脚本在数据库中创建一堆条目,我遇到的问题是如何引用我创建的上一个条目的生成主键。
例如,如果我创建了一个客户,然后尝试为该客户创建一个订单,我如何获取为该客户生成的主键?
我正在使用 SQLServer。
mysql - 用MySql中的自然键改造表中的代理键?
假设一个表使用自然键并且有许多现有的行。改造代理键列并使用 MySql 用唯一值填充它的最简单方法是什么?
即变换
到
并用有效的 id:s 填充新的 id 列。
谢谢/埃里克
linq - Linq 和检索主键
这段代码有效,但我不明白为什么。使用 DeferredLoadingEnabld = false,我希望它不会返回主键。有人可以解释我错过了什么吗?
订购服务:
sql - sql主键和索引
假设我在数据库中有一个 ID 行 (int) 作为主键。如果我经常查询 ID,是否还需要对其进行索引?还是它是主键意味着它已经被索引?
我问的原因是因为在 MS SQL Server 中我可以在这个 ID 上创建一个索引,正如我所说的,这是我的主键。
编辑:一个额外的问题 - 额外索引主键有什么害处吗?
sql-server - SQL Server - 更改 PK 数据类型的最佳方法是什么?
我目前有一个包含大约 20 个参考表的数据库,例如产品、资产、仓库、用户等。这些信息存储在中央数据库中,并下载到在路上的工程师的 PDA 上。我数据库中的每个表都有一个唯一标识符的 PK(即 GUID)。
经过 2 年的产品开发,我意识到我从不做也永远不需要编辑这些参考表中的任何一个。因此,他们不需要将 UniqueIdentifiers 作为主键。
由于我在通过 Web 服务将所有集合发送到 PDA 之前对它们进行序列化,因此由于 GUID 的长度,实际的序列化数据非常庞大。
无论如何,切入正题 - 我想将表的所有 PK 更改为 IDENTITY Ints。有什么简单的方法可以做到这一点,还是我必须按照切断所有 FK,创建临时表,然后编写一些软件来重新映射数据?
提前致谢。
database - 触发插入同一张表
我的数据库中有许多相互关联的表。我有一个表(表一),其中插入了数据并且 id 自动递增。一旦该行有一个 ID,我想将其插入到一个表(表三)中,其中包含来自表单的另一组 ID(此数据也将进入一个表,因此它可以来自该表),同样表格作为进入第一个表的数据来自。
这两个 ID 一起构成了第三个表的主键。
我怎么能这样做,它表明多个 ID 连接到一个 ID 用于其他东西。
谢谢。
sql - 自动递增 ID 值
我有一个带有生成 ID 的 HSQLDB 数据库,我希望自动递增值始终高于 100,000。这对 HSQLDB 可行吗?任何数据库都可以做到这一点吗?
hibernate - 休眠 ID 生成器
任何人都知道一些关于如何为休眠创建自定义 ID 生成器的好教程?