私は MySQL でオンライン ショップ データベースを設計しています。以下は私のコードです。
CREATE TABLE IF NOT EXISTS `eshop`.`sellers` (
`seller_id` INT(11) NOT NULL ,
`seller_name` VARCHAR(45) NOT NULL ,
`password` VARCHAR(45) NOT NULL ,
`contacts` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`seller_id`) ,
UNIQUE INDEX `seller_id_UNIQUE` (`seller_id` ASC) ,
UNIQUE INDEX `seller_name_UNIQUE` (`seller_name` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
CREATE TABLE IF NOT EXISTS `eshop`.`goods` (
`good_id` INT NOT NULL ,
`name` VARCHAR(45) NOT NULL ,
`description` TEXT NULL ,
`price` INT NULL ,
`photo` VARCHAR(45) NOT NULL ,
`owner_name` VARCHAR(45) NULL ,
`new` TINYINT(1) NOT NULL ,
`approvement_status` TINYINT NOT NULL ,
`contacts` VARCHAR(150) NOT NULL ,
`date` DATE NOT NULL ,
`seller_id_fk` INT NOT NULL ,
PRIMARY KEY (`good_id`) ,
UNIQUE INDEX `good_id_UNIQUE` (`good_id` ASC) ,
INDEX `seller_id_fk` (`seller_id_fk` ASC) ,
CONSTRAINT `seller_id_fk`
FOREIGN KEY (`seller_id_fk` )
REFERENCES `eshop`.`sellers` (`seller_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
MySQL エンジンの選択に問題があります。この投稿から、MyISAM と InnoDB の違いを理解しました。私のプロジェクトでは、ショップの商品が追加されるよりも表示されるため、書き込みよりも読み取りの方が多くなるため、MyISAM が必要ですが、上記のスクリプトでは、Foreign Key をサポートする InnoDB を使用しています。何を選べばいいですか?