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

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

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

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

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

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

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

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

        --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)下載排行

        主站蜘蛛池模板: 亚洲午夜激情视频| 国产免费观看网站| 亚洲国产精品久久久久婷婷软件| 免费人成再在线观看网站| 在线免费视频一区二区| 亚洲乱码无人区卡1卡2卡3| 免费人成视频在线| 亚洲AV无码国产精品永久一区| 暖暖日本免费在线视频| 亚洲av无码专区在线观看下载 | 国产AV无码专区亚洲AVJULIA| v片免费在线观看| 亚洲精品国产综合久久一线| 一区二区三区视频免费| 91麻豆精品国产自产在线观看亚洲 | 无码一区二区三区免费| 亚洲视频精品在线| 免费99精品国产自在现线| 亚洲AV一二三区成人影片| 在线观看免费为成年视频| 亚洲AV无码成人精品区狼人影院 | 91亚洲导航深夜福利| 精品免费人成视频app| 在线a亚洲老鸭窝天堂av高清| 四虎影院在线免费播放| 男女作爱免费网站| 亚洲国产精品福利片在线观看| 99在线观看免费视频| 亚洲精品无码专区在线| 国产亚洲精品AA片在线观看不加载 | 亚洲一级片内射网站在线观看| 91视频精品全国免费观看| 亚洲AV美女一区二区三区| 97碰公开在线观看免费视频| 国产精品亚洲综合天堂夜夜| 亚洲伊人久久大香线蕉综合图片| 麻豆最新国产剧情AV原创免费| 美女视频黄视大全视频免费的| 亚洲国产一成人久久精品| 久久久久久99av无码免费网站 | 亚洲av无码专区在线电影|