Итак, я работаю с MySQL Workbench 5.2 и делаю EER-диаграмму для своей базы данных, и когда я устанавливаю связь между многими (многие таблицы) между таблицами (а эти таблицы уже связаны с другими таблицами), она создает таблицу соединенийсо всеми другими связями в двух таблицах, к которым вы присоединяетесь ... мой вопрос: необходимо ли иметь все эти другие ключи?Вы не можете просто получить первичный ключ таблицы соединений, а затем просто идентификаторы двух таблиц, к которым вы относитесь?Или я что-то упускаю?
вот часть моей БД:
-- -----------------------------------------------------
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;
, так что, как вы можете видеть в таблице истории, она имеет внешние ключи для нескольких вещей, даже если она ссылается только на две таблицы.