• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

        我對(duì)權(quán)限控制系統(tǒng)的看法

        我對(duì)權(quán)限控制系統(tǒng)的看法

        更新時(shí)間:2022-05-06 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        請(qǐng)大家給個(gè)思路! ---- 刁饞

        # 我曾經(jīng)做了一個(gè)權(quán)限控制系統(tǒng),由于需要修改,而我沒有找到有效的解決方法,
        # 請(qǐng)大家給出出主意,給個(gè)大體思路,謝謝!要求如下:
        # 1.每個(gè)父親節(jié)點(diǎn)下邊有多個(gè)孩子
        # 2.每個(gè)孩子可能有一個(gè)父親,還可能有多個(gè)父親(多個(gè)父親的級(jí)別可能不同,也
        # 就是有交叉現(xiàn)象)
        # 3.每個(gè)父親可能管理相同的孩子或者不同的孩子
        # 4.每個(gè)父親登陸的時(shí)候,只能看到自己的孩子(如果管理的孩子不同,則登陸的
        # 父親只能看到自己下邊的孩子,如果相同,那么他們看到的孩子都一樣)
        # 5.每個(gè)父親可以添加自己的父親(孩子?)

        由問題的提出,可得到如下樹狀結(jié)構(gòu)。關(guān)鍵在于如何保存這個(gè)樹和怎樣檢索。

        --0--000 (虛擬的根)
        |
        +-------------------+---------------+
        --1--001 002 003
        | | |
         +--+--+ +----+----+ +--+--+
        --2-- 003 004 004006007 007 008
         | | |
         |+--+--+ +--+--+
        --3-- 007003 008 001 002
        |
         +----+----+
        --4-- 005007006

        其中004登錄后,應(yīng)看到(1,001)-[2,004]-(3,007)和(1,002)-[2,004]-(3,003)-(4,007)等
        而不應(yīng)看到(1,003)-(2,007)。
        即所有用戶在登錄后向下搜索孩子,可能在多個(gè)分支上進(jìn)行。

        設(shè)有兩張表
        表一保存所有成員的信息(以下簡(jiǎn)稱U),主鍵id_u
        表二為成員間的關(guān)系(以下簡(jiǎn)稱K),主鍵id
        U
        id_u | name | ...
        -------+------+----
        001||
        002||
        003||
        004||
        005||
        006||
        ...||

        K
        id| id_u | level | next | previons | right
        -----+------+-------+------+----------+-------
        1|001 | 1 |2 ||5
        2|003 | 2 ||1 |3
        3|004 | 2 |4 |1 |
        4|007 | 3 ||3 |
        5|002 | 1 |6 || 14
        6|004 | 2 |7 |5 | 12
        7|003 | 3 |9 |6 |8
        8|008 | 3 ||6 |
        9|005 | 4 ||7 | 10
        10|006 | 4 ||7 | 11
        11|007 | 4 ||7 |
        12|006 | 2 ||5 | 13
        13|007 | 2 ||5 |
        14|003 | 1 | 15 ||
        15|007 | 2 | 16 | 14 | 18
        16|001 | 3 || 15 | 17
        17|002 | 3 || 15 |
        18|008 | 2 || 14 |

        其中:level 保存級(jí)別, next 保存下級(jí)的id, previons 保存上級(jí)的id, right 保存右鄰的id
        關(guān)于具體的數(shù)據(jù)組織視算法而定。
        數(shù)的遍歷算法,是很經(jīng)典的了!
        建議用數(shù)組計(jì)算,即一次性讀入到數(shù)組,效率可能高一點(diǎn)

        測(cè)試?yán)琾revions項(xiàng)未用
        <?
        $ar = array(
        0,
        array(id=> 1,id_u=>"001", level=>1, next=> 2, previons=> 0, right=> 5),
        array(id=> 2,id_u=>"003", level=>2, next=> 0, previons=> 1, right=> 3),
        array(id=> 3,id_u=>"004", level=>2, next=> 4, previons=> 1, right=> 0),
        array(id=> 4,id_u=>"007", level=>3, next=> 0, previons=> 3, right=> 0),
        array(id=> 5,id_u=>"002", level=>1, next=> 6, previons=> 0, right=>14),
        array(id=> 6,id_u=>"004", level=>2, next=> 7, previons=> 5, right=>12),
        array(id=> 7,id_u=>"003", level=>3, next=> 9, previons=> 6, right=> 8),
        array(id=> 8,id_u=>"008", level=>3, next=> 0, previons=> 6, right=> 0),
        array(id=> 9,id_u=>"005", level=>4, next=> 0, previons=> 7, right=>10),
        array(id=>10,id_u=>"006", level=>4, next=> 0, previons=> 7, right=>11),
        array(id=>11,id_u=>"007", level=>4, next=> 0, previons=> 7, right=> 0),
        array(id=>12,id_u=>"006", level=>2, next=> 0, previons=> 5, right=>13),
        array(id=>13,id_u=>"007", level=>2, next=> 0, previons=> 5, right=> 0),
        array(id=>14,id_u=>"003", level=>1, next=>15, previons=> 0, right=> 0),
        array(id=>15,id_u=>"007", level=>2, next=>16, previons=>14, right=>18),
        array(id=>16,id_u=>"001", level=>3, next=> 0, previons=>15, right=>17),
        array(id=>17,id_u=>"002", level=>3, next=> 0, previons=>15, right=> 0),
        array(id=>18,id_u=>"008", level=>2, next=> 0, previons=>14, right=> 0)
        );
        //print_r($ar);

        function tree($ar,$i,$key,$level) {
        if($ar[$i][id_u] == $key || $ar[$i][level] > $level) {
        for($j=0;$j<$ar[$i][level]-1;$j++)
        echo "";
        echo "+--";
        echo $ar[$i][id_u]."<br>";
        if($ar[$i][next] > 0)
        tree($ar,$ar[$i][next],$key,$level);
        }
        if($ar[$i][right] > 0)
        tree($ar,$ar[$i][right],$key,$level);
        }

        $keys = array("001","002","003","004","005","006","007","008");

        while(list($key,$value) = each($keys)) {
        echo "===> $value<br>";
        for($i=1;$i<=count($ar);$i++) {
        if($ar[$i][id_u] == $value) {
        echo "[$value]<br>";
        tree($ar,$i,$value,$ar[$i][level]);
        }
        }
        }
        ?>

        溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 国内精品免费视频精选在线观看| 亚洲天堂一区二区三区| 国产亚洲精品美女久久久久| 91成人免费在线视频| 永久在线毛片免费观看| 亚洲 日韩经典 中文字幕 | 亚洲精品高清视频| 中国人免费观看高清在线观看二区| 在线播放亚洲第一字幕| 亚洲国产视频久久| 成人毛片免费观看视频在线| 久久亚洲中文字幕无码| 亚洲一区二区三区免费| baoyu777永久免费视频| 亚洲色欲或者高潮影院| 久久精品免费一区二区喷潮| 亚洲6080yy久久无码产自国产 | 国产麻豆视频免费观看| 国产亚洲福利在线视频| 免费国产成人午夜电影| 亚洲视频在线视频| 亚洲人成免费网站| 国产精品亚洲精品久久精品| 亚洲日本中文字幕天堂网| 三年片在线观看免费大全电影 | 性色av无码免费一区二区三区| 亚洲精品无码不卡在线播放| 亚洲国产一区明星换脸| 99久久免费中文字幕精品| 亚洲综合色婷婷在线观看| 狼群影院在线观看免费观看直播| 精品久久久久久亚洲精品| 亚洲国产精品激情在线观看| 日本高清免费观看| 亚洲精品无码高潮喷水A片软| 亚洲国产成人影院播放| aⅴ在线免费观看| 黄色一级免费网站| 亚洲理论片中文字幕电影| 222www免费视频| 婷婷亚洲综合一区二区|