这样呢? :
建一个表 有两个字段 军人编号 对谁负责然后一个关系,就是一条记录.例如:军人编号 对谁负责
b         d
b         e
b         r
b         s查询时 只要查询军人编号为b的记录 把所有结果综合 就可以得到军人编号为b的人 对谁谁谁...负责了.

解决方案 »

  1.   

    一个小兵之上有直接有一个“长官”,还间接有很多“长官”,那得有好多关系哟?????还有当新来一个人,我确定他(h)对某人(i)负责时,如何让系统自动加上(h)间接对
    (i)所直接和间接负责的人(集合)
    负责的关系呢??
    倒是这个问题,我想关系型数据库无能为力了?  :( 
      

  2.   

    楼上的,注意,我也考虑过用个递归程序处理,
    但想想,
    有的人(a)是直接对几个负责(b,c,d....)呀!
    且有可能上级中(b)又可能又对几个人(x,y,z...)负责呀!会递死人的,也会递死机的呀!咋办呀?????????????????????????????????
      

  3.   

    呵呵.这个问题其实可以转化为一个图论的问题.一个人就是一个点.
    a要对b负责,也就是说,a点和b点之间有一条有向边<a,b>.要求a间接直接的对谁负责,就转化为求从a点出发,可以到达哪些顶点.可以使用广度搜索的思想.做起来也不难.但时间效率我不敢说.没算过呢.呵呵....如果能请数据算法版的高手过来帮看一下,应该会比较好.毕竟我在数据算法版还是没什么地位的,哈哈....
      

  4.   

    對了,其實只要了解一點,這是算法問題,還是程序處理.
    如果覺得遞歸效率低,可以自己設計一個 棧結構,用循環替代 :
    可以用如下算法  ;
    1. a 入棧
    repeat until stack is empty  {
    2. 設 x 為棧頂元素 .
    3. x 出棧, x 的直接負責人入棧
    }
    不過,為了減少數據庫操作,可以把數據先取出來存于數組,或者用其他方式 .
      

  5.   

    规模很一般,广度或深度优先搜索都可以,时间复杂度为O(e),e为所有直接负责关系的数目,可以计算出一个人的所有间接负责人。这种时间复杂度很一般,完全可取。
      

  6.   

    www.chinesehis.com/starry/index.php
    有你对你问题的提问,请去看看
      

  7.   

    这样看好不好
    军人ID   所属     负责人ID          被负责人ID
    1         X军    3|4|5             6|7|8不管是哪个军的,反正ID是唯一的
      

  8.   

    我最后用了二维表来表示三维的关系了。
    还好,还不错,只是慢。
    知道NDS吧,呵呵,有点像它哟。
    谢谢大家。
    继续讨论!