我最近了解了工作中如何在数据库中定义关系,并想知道这是否是一种标准做法。
假设我们有两个进程:进程 A 和进程 B。进程 B 取决于进程 A 的结果,因此需要在进程 B 运行和进程 A 运行之间定义关系。关系是这样定义的:
TableProcessA:
Id
Run Code Online (Sandbox Code Playgroud)
和
TableProcessB:
Id
ProcessAId
Run Code Online (Sandbox Code Playgroud)
现在,到目前为止,事情对我来说是有道理的,但后来我和我对表格设计的理解变得有点奇怪。每当在 TableProcessA 或 TableProcessB 中创建一行时,都会调用一个函数,为每个创建一个全局唯一的 id。所以基本上,TableProcessA 和 TableProcessB 中的所有 Id 字段都不会包含任何匹配项,因为 Id 不仅对其表是唯一的,而且对整个数据库也是唯一的。
我的问题是,这有多标准?我的想法是每个表都应该有一个自动递增的 id,这个 id 只对表是唯一的,而不是整个数据库。
可能的重复:
每个表都应该有一个单字段代理/人工主键吗?
我无法想象每个表都不使用唯一 ID,这就是我问这个问题的原因。您不应该为表中的每一行分配一个唯一的 ID 吗?