mysql - MySQL 中的层次关系数据库设计

标签 mysql sql database relational

<分区>

我对 SQL 和 MySQL 还很陌生。我正在 MySQL 中设计一个关系数据库来存储我在社交事件中遇到的各种人的联系信息。我想让数据库尽可能规范化,但在设计公司、部门和职位之间的层次关系时遇到了困难。我仍然只是在纸上设计这个数据库。

例如,在金融领域,您可以在 J.P. Morgan 的投资银行部门工作。该部门有几个子部门,例如 ECM。在 ECM 中还有其他子部门。因此,一个人可能是 J.P. Morgan > Investment Banking > ECM > Sales > Analyst,而 Investment Banking、ECM 和 Sales 都是彼此的子部门,J.P. Morgan 是公司,Analyst 是工作。

但是,对于其他职业,例如自雇人士,工作可能不属于任何部门。因此,SelfEmployedBiz > SelfEmployed。

显然,我的问题是一些工作属于多个分割,而其他工作属于零个分割。

我的问题:我该如何着手设计数据库的这一部分?我唯一能想到的是添加几个 Division 表(TopDivision、SecondDivision、ThirdDivision 等),但这看起来既困惑又尴尬。有没有更好的办法?

如何设计

最佳答案

您可以在部门表中拥有自引用关系。像这样:http://schemadeck.com/c3uuhb

parent_division_id 引用同一表中的另一行。

关于mysql - MySQL 中的层次关系数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394850/

相关文章:

mysql - ElasticSearch 和现有的 MySQL 数据库

javascript - 获取变量中的cookie(24小时有效)并发送到mysql

mysql - 如何界定外键的可能值?

mysql - 选择 Mysql 数据类型

mysql - 大查询 : Consolidate subselect into one row by date

按出现次数最多的 MySQL 查询顺序

MYSQL查询将从字符串中删除字符

mysql - Doctrine 选择多列

sql - 无法在 View 表中使用平均聚合

通过cpanel登录网站文件夹时出现php警告