Sql 选择主键时出现问题

Sql 选择主键时出现问题,sql,Sql,我正在开发一个数据库,其中存储有关贷款号码的信息。我想用这些作为主键,但在与主管讨论该项目的设计时,他表示,该数据可能会重复,因为与其他项目相关的数据可能不同 一个没有陷入困境的例子是,政府决定以不同的金额对同一地址和贷款号码提出第二次索赔。这将位于已输入数据库的上一个声明之上 我有什么选择?我需要一个特定贷款的查询,以显示该贷款编号的所有信息,这就是为什么我希望它从该列中提取主键 我能想到的唯一一件事是,通过为同一财产的新索赔创建类别,使表变得更大。问题是索赔的名称将创建重复的列标题…然后我必

我正在开发一个数据库,其中存储有关贷款号码的信息。我想用这些作为主键,但在与主管讨论该项目的设计时,他表示,该数据可能会重复,因为与其他项目相关的数据可能不同

一个没有陷入困境的例子是,政府决定以不同的金额对同一地址和贷款号码提出第二次索赔。这将位于已输入数据库的上一个声明之上

我有什么选择?我需要一个特定贷款的查询,以显示该贷款编号的所有信息,这就是为什么我希望它从该列中提取主键


我能想到的唯一一件事是,通过为同一财产的新索赔创建类别,使表变得更大。问题是索赔的名称将创建重复的列标题…然后我必须弄清楚这一点,并更改他们用于数据输入的过程。

您不能有一个包含贷款编号的表和一个索赔表,并且每个贷款编号可以有多个索赔,使用外键吗?为什么贷款编号必须是主键

请不要使用不适用于您的问题的标记。我删除了数据库标签,因为不清楚您实际使用的是哪一个。如果您想要一个规范化的架构,请仅添加您实际使用的数据库的标记。如果您想要一个规范化的架构,请为单个索赔编号的多个索赔添加信息。首先,使用真实数据作为主键几乎总是一个坏主意。只需添加一个单独的(最好是int)列,其中包含自动生成的唯一编号,或者使用任何其他方法生成唯一ID。您可以在索引中使用贷款编号,这将加快对贷款编号的搜索。只是不要让它成为一个独特的索引。为此目的创建另一个内部ID。它不必是必需的,我试图将它用作主键,因为每个贷款和有关贷款的信息的数字都是唯一的。似乎我唯一的选择是使用自动生成的索引数字列。拥有权利要求表的问题在于,它们当前也没有为这些权利要求使用唯一标识符。他们只是用数据中重复的贷款编号填充新的日期和美元金额信息。根据我得到的信息,我们合作的政府机构没有提供唯一的编号。但是,如果您使用贷款编号作为外键在表中转储索赔,那么为什么索赔需要数据中的唯一编号?(除了您提供的通用id)您可以​ 贷款,然后得到所有属于它的索赔?也许我遗漏了什么,你是对的。我想得太多了。我最终决定使用自动生成的表键,因为正如您所说,这将为每个声明分配一个通用id,因为它们当前没有数字。然后,当我搜索有关特定贷款的信息时,它将显示与贷款编号相关的所有条目。