一尘不染

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

mysql

这是我正在使用的密集设置的过度简化。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上的主键是否可以?


阅读 455

收藏
2020-05-17

共1个答案

一尘不染

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

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

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

2020-05-17