【发布时间】:2016-06-29 23:47:13
【问题描述】:
我正在设计教师和部门数据库,其中包括 id、姓名、学校、学院、部门等。
教职员工的脚本是
CREATE TABLE `faculty` (
`id` varchar(12) NOT NULL,
`name` varchar(255) NOT NULL,
`school` varchar(255) DEFAULT NULL,
`college` varchar(255) DEFAULT NULL,
`dept` varchar(255) DEFAULT NULL,
`update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='faculty';
数据将是
1, David, Harvard, College of Engineering, Computer Science
2, John, Harvard, College of Engineering, Computer Science
3, Clare, MIT, College of Law, Law
4, Jim, MIT, College of Science, Computer Science
当然,school、college、dept应该是不同的表,并且有关系。
但我没有部门代码(id)和它的固定名称。部门名称可以是“Computer Science”或“Computer Engineering”,具体取决于学校。学院名称相同。
这些表和关系有什么简单有效的方法吗?我不认为像 department_id 这样简单的自动攻击不好。
最初,我认为部门名称+自动编号的4个字符可以作为部门的复合键。
Comp0001
Comp0002
Biol0001
Biol0002
提前感谢您的 cmets。
【问题讨论】:
标签: mysql database composite-primary-key