关于sql:MySQL中的分层关系数据库设计

Hierarchical Relational Database Design in MySQL

本问题已经有最佳答案,请猛点这里访问。

我是SQL和MySQL的新手。我正在MySQL中设计一个关系数据库来存储我在网络活动中遇到的各种人的联系信息。我想尽可能地使数据库标准化,但在设计公司,部门和工作标题之间的层次关系时遇到了困难。我仍然只在纸上设计这个数据库。

例如,在财务部门,您可以在其投资银行部门为J.P. Morgan工作。这个部门有几个子部门,如ECM。在ECM内部还有其他子部门。因此,一个人可能是J.P.摩根>投资银行> ECM>销售>投资银行,ECM和销售分析师都是彼此的子部门,J.P。摩根是公司,分析师是工作。

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

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

我的问题:我如何设计数据库的这一部分?我唯一能想到的就是添加几个分区表(TopDivision,SecondDivision,ThirdDivision等),但这看起来既麻烦又笨拙。有没有更好的办法?

我该如何设计一个


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

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