我在 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,但在上面的脚本中,我使用了 InnoDB,因为它支持外键。我应该选择什么?