我設計在MySQL的網上商店數據庫,下面是我的代碼:該款發動機選擇在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引擎之間的問題,從this post我瞭解MyISAM和InnoDB之間的差異。在我的項目中,將會有更多的讀取而不是寫入,因爲商店商品將被視爲多於添加,所以我需要MyISAM,但在上面的腳本中,我使用InnoDB,因爲它支持外鍵。我應該選擇什麼?
我個人認爲你應該堅持使用InnoDB,除非你有一個非常大的數據集和特定的需求,經過基準測試後,證明MyISAM性能更高,並且你可以在沒有完整性限制的情況下完成。 – siride