用户报告用户的mysql架构

时间:2017-11-06 13:42:08

标签: mysql database

对于报告其他用户的用户,我遇到了mysql表的问题。 我有一个名为user的表,其中包含名称,电子邮件,密码等属性,以及另一个具有属性fk_user(谁报告),fk_user(报告的人),描述的表报告。表可以有两个这样的外键吗

1 个答案:

答案 0 :(得分:0)

CREATE TABLE `employee` (
  `employee_id` int(11) NOT NULL AUTO_INCREMENT,
  `employee_name` varchar(64) NOT NULL,
  `employee_email` varchar(255) NOT NULL,
  PRIMARY KEY (`employee_id`)
)

CREATE TABLE `employee_manager` (
  `employee_id` int(11) NOT NULL,
  `manager_id` int(11) NOT NULL,
  PRIMARY KEY (`employee_id`,`manager_id`),
  KEY `fk_manager` (`manager_id`),
  CONSTRAINT `employee_manager_ibfk_1` FOREIGN KEY (`manager_id`) REFERENCES `employee` (`employee_id`),
  CONSTRAINT `employee_manager_ibfk_2` FOREIGN KEY (`employee_id`) REFERENCES `employee` (`employee_id`)
);

或者,您可以使用自引用表

完成整个操作

e.g。

CREATE TABLE `employee` (
  `employee_id` int(11) NOT NULL AUTO_INCREMENT,
  `employee_name` varchar(64) NOT NULL,
  `manager_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`employee_id`),
  KEY `manager_id` (`manager_id`),
  CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`manager_id`) REFERENCES `employee` (`employee_id`)
);