所以我正在使用 MySQL 工作台 5.2,我正在为我的数据库制作 EER 图,当我在一个表之间建立多对多关系时(并且这些表已经与其他表有关系),它会创建一个包含所有您要加入的两个表中的其他关系..我的问题是:是否有必要拥有所有其他键?你不能只有连接表的主键,然后只有你相关的两个表的 id 吗?还是我忽略了什么?
这是我的数据库的一部分:
-- -----------------------------------------------------
Table `test`.`storys_has_comments`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `test`.`storys_has_comments` (
`storys_id` INT NOT NULL ,
`storys_user_id` INT NOT NULL ,
`comments_id` INT NOT NULL ,
PRIMARY KEY (`storys_id`, `storys_user_id`, `comments_id`) ,
INDEX `fk_storys_has_comments_comments1` (`comments_id` ASC) ,
INDEX `fk_storys_has_comments_storys1` (`storys_id` ASC, `storys_user_id` ASC) )
ENGINE = MyISAM;
-- -----------------------------------------------------
Table `test`.`storys`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `test`.`storys` (
`id` INT NOT NULL ,
`user_id` INT NOT NULL ,
`catagories_id` INT NOT NULL ,
PRIMARY KEY (`id`, `user_id`, `catagories_id`) ,
INDEX `fk_storys_user` (`user_id` ASC) ,
INDEX `fk_storys_catagories1` (`catagories_id` ASC) )
ENGINE = MyISAM;
-- -----------------------------------------------------
Table `test`.`comments`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `test`.`comments` (
`id` INT NOT NULL ,
`body` TINYTEXT NULL ,
PRIMARY KEY (`id`) )
ENGINE = MyISAM;
所以你可以在故事表中看到它有多个事物的外键,即使它只链接到两个表。