问答 | 九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧
zenefits有很多个部门,是层级结构,比如R&D这个部门下有 software department 部门,而 software department 部门下又有 backend 和 frontend 等等。其中每个部门里有主管,有员工。
设计数据库表结构来表示这个关系。
楼主设计了两个Table, 一个表示 department, 一个表示 stuff
其中 department table 中存了 这个部门的上级部门的id,以及子部门 id list, 这样比如下面表示的 R&D 部门没有上级部门,但是有下级部门:software department,然后 software department 的上级是 R&D, 子部门是 frontend、backend
Department Table
departmentID, department name, manager id, emloyees, parent id, childrent id
----
1, R&D, manager_id(123), employee_id_list(124,125), null, children_id_list(2, 3, 4 ...)
2, software department, , (), parent_id(1), children_id_list(3, 4, 5)
3, front end
4, back end
Staff Table
id, name, department id, ...
然后面试官问如果这个结构要查 RD 所有部门下的员工怎么办。
楼主这个结构只能先把 RD 下面的所有 department id 遍历出来,然后拿着这个 list 去 stuff table 中找了,貌似不太好啊...
不知道大家有什么想法。
Read full article from 问答 | 九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧
zenefits有很多个部门,是层级结构,比如R&D这个部门下有 software department 部门,而 software department 部门下又有 backend 和 frontend 等等。其中每个部门里有主管,有员工。
设计数据库表结构来表示这个关系。
楼主设计了两个Table, 一个表示 department, 一个表示 stuff
其中 department table 中存了 这个部门的上级部门的id,以及子部门 id list, 这样比如下面表示的 R&D 部门没有上级部门,但是有下级部门:software department,然后 software department 的上级是 R&D, 子部门是 frontend、backend
Department Table
departmentID, department name, manager id, emloyees, parent id, childrent id
----
1, R&D, manager_id(123), employee_id_list(124,125), null, children_id_list(2, 3, 4 ...)
2, software department, , (), parent_id(1), children_id_list(3, 4, 5)
3, front end
4, back end
Staff Table
id, name, department id, ...
然后面试官问如果这个结构要查 RD 所有部门下的员工怎么办。
楼主这个结构只能先把 RD 下面的所有 department id 遍历出来,然后拿着这个 list 去 stuff table 中找了,貌似不太好啊...
不知道大家有什么想法。
Read full article from 问答 | 九章算法 - 帮助更多中国人找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧