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

标签 mysql primary-key myisam composite-key composite-primary-key

这是我正在使用的密集设置的严重过度简化。 table_1table_2 都有自增代理主键作为 ID。 info 是一个表,其中包含有关 table_1table_2 的信息。

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

我正在尝试决定是否应该将 info 的主键组合成来自 table_1table_2 的 ID。如果我要这样做,哪一个最有意义?
(在本例中,我将 ID 11209 与 ID 437 组合在一起)

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

还是别的什么?

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

最佳答案

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

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

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

关于mysql - 如何正确创建复合主键 - MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835978/

相关文章:

sql - 仅主键和主键约束有什么区别?

MYSQL innodb 还是 myisam?哪个最适合这种情况?

mysql - 如何以自定义格式而不是字母数字方式对 SQL 数据进行排序

php - 从 2 个 mysql 表中获取并显示按月记录

c# - 在 Entity Framework 中添加具有多对多关系的项目

sql - 当我按键聚合时,为什么不能从 `GROUP BY` 中排除依赖列?

mysql - 优化查询-mysql

mysql - 在数据库中按视频时间保存视频观看统计数据

php - 如何使用 Laravel 5.3 显示 DATE_RFC2822 并将其保存到 MySQL?

php - 无法连接到网站中的数据库