当前位置: 首页 > 面试题库 >

如何正确创建复合主键-MYSQL

司徒寒
2023-03-14
问题内容

这是我正在使用的密集设置的过度简化。table_1并且table_2都具有自动增量代理主键作为ID。info是包含有关table_1和的信息的表table_2

table_1 (id, field)  
table_2 (id, field, field)
info ( ???, field)

我试图决定,如果我应该做的主键info的复合ID的距离table_1table_2。如果我要这样做,哪一个最有意义?
(在此示例中,我将ID 11209与ID 437组合在一起)

INT(9)11209437 (我可以想象为什么这很糟糕)
VARCHAR (10) 11209-437
DECIMAL (10,4)11209.437

或者是其他东西?

将其用作MYSQL MYISAM DB上的主键是否可以?


问题答案:

我会使用一个复合(多列)键。

CREATE TABLE INFO (
    t1ID INT,
    t2ID INT,
    PRIMARY KEY (t1ID, t2ID)
)

这样,您还可以将t1ID和t2ID作为指向它们各自表的外键。



 类似资料:
  • 问题内容: 我想要具有来自同一数据条目的版本。换句话说,我想用另一个版本号复制该条目。 将是主键。 实体看起来如何?如何将其复制到另一个版本? 问题答案: 你可以制作一个,其中包含两个键,然后像中一样引用该类Entity。 你将需要和注释。 完成此任务的另一种方法是使用@IdClass批注,然后将两者都id放在该批注中IdClass。现在你可以@Id在两个属性上使用普通注释

  • 实体应该是什么样子的?我如何用另一个版本复制它?

  • 你不知道如何在JOOQ(Java)中创建主键吗?我需要的只是得到正确的创建表字符串。我还没有这段代码(使用SQLDialect。MYSQL): 输出(来自字符串生成器): 我需要的是设置主键以获得正确的输出: 不使用execute()是否可能?因为我只需要它作为字符串,所以我想再次使用only getSQL()命令。。。 我发现了类似这样的东西:DSL。主密钥(“id”); 但我无法将它与rest

  • 问题内容: 我正在设计一个数据库,该数据库将用于存储来自许多不同来源的数据。我存储的实例由原始来源分配了唯一的ID。我存储的每个实例都应包含有关其来源的信息,以及与此来源相关联的ID。 作为示例,请考虑说明该问题的下表: 请注意,尽管每个来源的唯一,但有可能在不同来源中找到相同的来源。 我对关系数据库有一个不错的了解,但是与专家甚至是经验丰富的用户都相去甚远。我在此设计中面临的问题是应该用作主键。

  • 问题内容: 我在这里搜索,但未找到任何类似的主题,因此我发布了一个新问题。 我正在使用现有数据库上的Hibernate。我们不允许更改表的结构和数据。该应用程序正在从数据库读取数据,并根据某种逻辑迁移到另一个数据存储。 现在的问题是关于复合PK映射。例如 表A具有复合PK。 表B也有一个复合PK,此复合PK的一部分是A的PK,此处也用作FK。 我尝试了几种方法,但都无济于事。谁能告诉一个有效的Hi

  • 问题内容: 我试图用来向没有定义主键的表中插入数据。 但是事实是该表的两个字段一起在表中是唯一的。我如何使用hibernate注释实现相同的目的? 这是我的代码。 问题答案: 您可以使用和创建复合键,并将其与您的实体进行映射。例如: 然后在Java代码中使用常规方式来持久化实体。 参考:http : //docs.jboss.org/hibernate/annotations/3.5/refere