如何设计这样的数据库表

jdbreeze 2005-03-22 02:53:28
有一个雇员表:emp_table。 每个雇员有一个雇员号emp_id,还有一个主管号emp_id,表示他/她所直属的上级主管manager_emp_id,以及其他信息。所有主管也是雇员,存在雇员表emp_table中,雇员表中很多人都有可能是主管身份,只要他/她有下属的人。但是如果有一天,某个主管离职了,那么所有她的下属员工的对应的manager_emp_id不是都要手工去一个个改过来?该如何设计避免这种情况
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathematician 2005-03-30
  • 打赏
  • 举报
回复
如果仅仅因为这个原因,没必要再建新表,需要时直接update就行了。
1by1 2005-03-30
  • 打赏
  • 举报
回复
公司的人不会太多,比如10万,所以怎么做都可以,不用关心效率
taoxuwen 2005-03-29
  • 打赏
  • 举报
回复
这种多重查询不会有多大的影响
jdbreeze 2005-03-28
  • 打赏
  • 举报
回复
我把很多这种类似的都拉出来做一张表含有id号和name,结果发现要做多重的连接查询,会不会大大降低运行速度啊?
trampwind 2005-03-22
  • 打赏
  • 举报
回复
主管离职的话,你也可以一个SQL语句把所有主管为该manager_emp_id一次更新为另一值啊,这应该是在应用程序中处理这些逻辑吧,实现起来倒是很简单。
如果你不想每次主管离职都要更新他下属员工的manager_emp_id,我觉得可以这样吧:
另建一个主管编号与主管emp_id中间对应表(这个表记录数也就是总管的数目应该比较小),你的emp_table表中manager_emp_id存放主管的编号而不是主管的emp_id,这样的话主管离职时你只需要把这个中间对应表中=该主管emp_id这一条记录更新一下(改变其emp_id值),受影响的记录范围是大大减少,不过如果需要查询主管emp_id时要做联合查询了
jxhj 2005-03-22
  • 打赏
  • 举报
回复
這個可以用程式達成的
在刪除那個要離職主管時,就要指定一個新的主管
一個SQL語名就搞定了
update emp_table set manager_emp_id='新主管的ID' where manager_emp_id='舊主管ID'

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧