下面的MySQL代码...多对一的关系?
CREATE TABLE Employee (
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
departmentId TINYINT UNSIGNED NOT NULL
COMMENT "CONSTRAINT FOREIGN KEY (departmentId) REFERENCES Department(id)",
firstName VARCHAR(20) NOT NULL,
lastName VARCHAR(40) NOT NULL,
email VARCHAR(60) NOT NULL,
ext SMALLINT UNSIGNED NULL,
hireDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
leaveDate DATETIME NULL,
INDEX name (lastName, firstName),
INDEX (departmentId)
)
CREATE TABLE Department (
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(40),
UNIQUE (name)
)
...定义了许多给员工和部门之间的一个关系。换句话说,一个员工只能在一个部门,但一个部门可以有很多员工。但有人可以更详细地解释这一点吗?上面的代码是如何告诉我的?
仅供参考 - 您可能不应该为departmentId使用tinyint,您会遇到麻烦。只需使用Int。 – Difster
这些表之间没有定义关系。阅读['CREATE TABLE'](https://dev.mysql.com/doc/refman/5.7/en/create-table.html)语句的语法。 – axiac
@axiac原则上你是对的,但'comment'被yii框架读取并用于自动定义关系。 – Grateful