如何创建此关系表?

时间:2011-03-16 23:45:21

标签: mysql database-design datatable

以下是关系数据库的一部分。我知道如何创建表Film并为其分配主键..但不要低估创建其他表并为其分配主键。 有什么帮助吗?

enter image description here

Film

CREATE TABLE Film (
  Id INTEGER PRIMARY KEY,
  Title VARCHAR(35) NOT NULL,
  Description VARCHAR(256) NOT NULL,
  Year INTEGER NOT NULL CHECK (Year > 1900),
  Rating INTEGER NOT NULL DEFAULT 3 CHECK (Rating BETWEEN 1 AND 5)
);

如何创建表格FilmFormatOrderItem

2 个答案:

答案 0 :(得分:2)

CREATE TABLE `jy` (
  `PKfield` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  `field2` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`PKfield`),
  CONSTRAINT `FK` FOREIGN KEY `FK` (`PKfield`)
    REFERENCES `Film` (`Id`)
    ON DELETE RESTRICT
    ON UPDATE RESTRICT
)
ENGINE = InnoDB;

答案 1 :(得分:0)

这足以向您展示如何在两个表之间创建外键约束。如评论所述,CHECK约束将被解析但被忽略。

CREATE TABLE Film (
  Id INTEGER PRIMARY KEY,
  Title VARCHAR(35) NOT NULL,
  Description VARCHAR(256) NOT NULL,
  Year INTEGER NOT NULL CHECK (Year > 1900),
  Rating INTEGER NOT NULL DEFAULT 3 CHECK (Rating BETWEEN 1 AND 5)
);

CREATE TABLE FilmFormat (
  FilmId INTEGER not null,
  FormatId INTEGER not null,
  Price decimal(16,4) null,
  Primary Key(FilmId, FormatId),
  Constraint FK_FilmFormat_FilmId FOREIGN KEY (FilmId) REFERENCES Film(Id)
);

做最后一张桌子就是为你做的工作。