这是设计数据库的标准方法吗?

soo*_*ise 8 database-design uniqueidentifier

我最近了解了工作中如何在数据库中定义关系,并想知道这是否是一种标准做法。

假设我们有两个进程:进程 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 只对表是唯一的,而不是整个数据库。

DFo*_*k42 7

这种做法并不奇怪。这些称为 GUID,或全局唯一 ID。这个想法是,给定一个 GUID,你可以准确地知道该 id 属于哪一块数据,因为它在任何地方都是唯一的。当您将合并不同来源的相似数据时,最好使用 GUID;例如,不同商店的库存。

我会做一些研究并找出为什么这在您的环境中是一种常见做法。也许需要,也许不需要。


mrd*_*nny 0

我不会说这是正常的,但这样设置也不是不正常的。

  • -1 就目前情况而言,这个答案并没有真正提供任何有用的东西。 (2认同)
  • 答案是,是的。提供任何有用的东西,没有。 (2认同)