0

新しいプロジェクトを開始していますが、どこから始めればよいかわかりません。カテゴリと 4 つのレベルのサブカテゴリを持つデータベース設計が必要ですが、製品には複数のカテゴリを含めることができます。だから私は私のデータベースがどうあるべきか混乱しています.Plzは私を助けてくれます. 早々にお時間を頂戴し、誠にありがとうございました。

4

1 に答える 1

4

あなたのモデル

product : id を持つ製品を保持し
ます category : id と名前を持つカテゴリを保持し、かつカテゴリの親カテゴリを保持します
product_category : 1 つまたは複数の製品と 1 つまたは複数のカテゴリの間の相互関係を保持します...

mysql または適切な DBMSで InnoDB を使用する場合は、外部キー制約を定義する必要があります。

CREATE  TABLE IF NOT EXISTS `mydb`.`category` (
  `id` INT NOT NULL ,
  `name` VARCHAR(45) NULL ,
  `parent_id` INT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `parentCategory_idx` (`parent_id` ASC) ,
  CONSTRAINT `parentCategory`
    FOREIGN KEY (`parent_id` )
    REFERENCES `mydb`.`category` (`id` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;



CREATE  TABLE IF NOT EXISTS `mydb`.`product` (
  `id` INT NOT NULL ,
  `name` VARCHAR(45) NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;

CREATE  TABLE IF NOT EXISTS `mydb`.`product_category` (
  `product_id` INT NOT NULL ,
  `category_id` INT NOT NULL ,
  PRIMARY KEY (`product_id`, `category_id`) ,
  INDEX `product_idx` (`product_id` ASC) ,
  INDEX `category_idx` (`category_id` ASC) ,
  CONSTRAINT `product`
    FOREIGN KEY (`product_id` )
    REFERENCES `mydb`.`product` (`id` )
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `category`
    FOREIGN KEY (`category_id` )
    REFERENCES `mydb`.`category` (`id` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
于 2012-08-26T08:17:14.553 に答える