- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
虽然我犯了这个罪,但在我看来,没有任何充分的理由让表没有标识字段主键。
优点:- 无论您是否愿意,您现在都可以唯一地标识表格中的每一行,这在以前是无法做到的- 你不能在你的表上没有主键的情况下进行 sql 复制
缺点:- 表格的每一行额外的 32 位
例如,考虑您需要将用户设置存储在数据库表中的情况。您有一列用于设置名称和一列用于设置值。不需要主键,但拥有一个整数标识列并将其用作主键似乎是您创建的任何表的最佳实践。
除了大小之外,是否还有其他原因导致每个表不应该只有一个整数标识字段?
最佳答案
当然,单数据库解决方案中的一个示例是,如果您有一个国家/地区表,使用 ISO 3166-1-alpha-2 country code 可能更有意义作为主键,因为这是一个国际标准,并使查询更具可读性(例如 CountryCode = 'GB'
而不是 CountryCode = 28
)。类似的论点可以应用于 ISO 4217 currency codes .
在使用复制的 SQL Server 数据库解决方案中,UNIQUEIDENTIFIER
键会更有意义,因为某些类型的复制需要 GUID(如果有多个复制,也更容易避免键冲突源数据库!)。
关于database - 是否有充分的理由让数据库表没有整数主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671773/
您好,我希望我的下一个输出(在本例中就是字母)在上一个输出之后输出 8 个空格。这适用于第一个字符,但之后的 printf 语句不起作用。它在第一个 printf 语句之后立即打印,我试图将其设置为
我想知道制作 std::list<>::splice 背后的基本原理是什么使引用被拼接到新容器中的子序列的迭代器无效。这对我来说有点不合逻辑,尤其是考虑到标准 std::container::swap
谁能告诉我为什么我应该使用 Azure Function 输出绑定(bind)(例如 SendGrid 或 Twilio)而不是仅仅在我的 C# 函数中显式使用适当的 SDK(例如 Sendgrid
我们在当前项目中使用 React 和 TypeScript,我遇到了以下行为。 import React, { Component } from 'react'; 我将上面的行替换为下面的行,因为它似
我是一名优秀的程序员,十分优秀!