1
1
我认为你的“一种可能性”很有可能。显然,在过去的数据库设计时代,主键是唯一可用的唯一索引;引用的资料 this question about one-to-many relationship implementation 例如,似乎来自这样一个时代。似乎有理由认为在那个时代受过训练的一些人会保持自己的习惯。 |
2
2
另外,考虑到内部ID可能是本公司产品中使用的ORM随此数据库一起使用的需求。 |
3
1
假设它背后有一个明显的理性原因——这很容易是一个遗留问题,可以追溯到软件的一个古老版本,这个版本从来没有被改变过,但现在却深不可测——我建议最可能的解释是,设计者认为访问表通常是通过字段在他们使用的主键中,因此他们认为这将是最有效的查询。如果他们认为大多数时候只需要检索(组织内部ID、订单内部ID)字段,因此将这些字段放入主键中,以避免表读取,那么这可能对他们特别有吸引力。 逻辑运行类似于“我们知道我们通常只需要组织内部ID和从这个表中订购内部ID,所以如果我们将它用作pk,数据将直接检索,而不是强制访问实际的行数据,我们将通过任意的内部ID访问。” 这可能是真的,也可能不是真的,但是一旦这些决定是在这种软件中做出的,他们往往会坚持下去,除非改变它们的理由是令人信服的。 我对很久以前在Oracle Accounting IV中看到类似的构造有着模糊的记忆,所以它可能来自一些旧的Oracle方法(Oracle 6对这些东西相当敏感)。 |
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
Max J. · 用整数作为键将dict写入csv 2 年前 |