Cli*_*ote 5 mysql database indexing database-design database-optimization
我有一些innoDbs只有2个int列,它们是其他表的主键的外键.
例如,一个表是user_items,它有2列,userId,itemId,用户和项目表的外键,如果更新或删除则设置为级联.
我应该在这些表中添加第3列并将其作为主键,还是在性能或任何其他好处方面,它现在的方式更好?
仅仅为了添加ID列而添加第三个ID列是没有意义的.实际上,当您插入或删除行时,它只会增加处理开销(索引维护).
主键不一定是"ID列".
如果您只允许在用户和项目之间关联一个(用户不能两次分配相同的项目),那么定义(userid, itemid)
为表格的主键是有意义的.
如果你允许同一对出现不止一次,那么你当然不需要那个约束.