我有一些只有 2 个 int 列的 innoDbs,它们是其他表的主键的外键。
例如一个表是user_items,它有2列,userId,itemId,都是用户和项目表的外键,如果更新或删除则设置为级联。
我应该向此类表添加第 3 列并将其设为主键,还是就性能或任何其他优势而言,现在的方式更好?
最佳答案
仅仅为了添加一个 ID 列而添加第三个 ID 列是没有意义的。事实上,当您插入或删除行时,它只是增加了处理开销(索引维护)。
主键不一定是“ID 列”。
如果你只允许用户和项目之间的单一关联(一个用户不能被分配两次相同的项目)那么定义 (userid, itemid)
作为你的主键是有意义的 table 。
如果您确实允许同一对出现不止一次,那么您当然不需要该约束。
关于mysql - 是否应该始终将主键添加到 innodb 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176415/