検索
ホームページphp教程php手册入退室管理システムについての私の考え

コントロール

いくつかアイデアをください! ---- Diao Yan

# 権限制御システムを一度作成したことがありますが、変更する必要があるため、効果的な解決策が見つかりませんでした。
# いくつかのアイデアと一般的なアイデアを教えてください。ありがとうございます。要件は次のとおりです。
# 1. 各父親ノードの下に複数の子が存在します
# 2. 各子は 1 つの父親を持つことも、複数の父親を持つこともできます (複数の父親のレベルが異なる場合があります。これは、クロスオーバー現象があることを意味します)
# 3. 各父親は、同じ子または異なる子を管理できます
# 4. 各父親がログインすると、自分の子供のみを見ることができます (別の子供を管理している場合、ログインした
# 父親は自分の下の子供のみを見ることができます) 、それらが同じであれば、彼らが見る子供も同じです)
# 5. 各父親は自分の父親(子供?)を追加できます

質問から、次のツリー構造が得られます。このツリーをどのように保存し、どのように取得するかが鍵となります。

--0--absion - +
- 1-- 001 002003
- + - +004 006 007 007008
+ - + - +
- 3-- 007 003 008+ ----+----+
--4-- 007 006

004 でログインすると、(1,001)-[2,004]-(3,007) と (1,002)-[2,004]-(代わりに、3,003)-(4,007) など
(1,003)-(2,007) が表示されるはずです。
つまり、すべてのユーザーはログイン後、場合によっては複数のブランチで子を下方向に検索します。

テーブルは2つあります
テーブル1は全メンバーの情報(以下Uとします)、主キーid_uを保存します
テーブル2はメンバー間の関係(以下Kとします)、主キーid_u
を保存しますid_u | 名前 ...
-------+------
006 |
K
レベル |右
-----+------+----------+------+---------- ---+----------
1 | 001 | 2 |  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 保存階層、next 保存下階層の id、previons 上階層保存の id、right 保存右階層の id
特定のデータ集団監視法に関して決定されます。 !
建议用数組計算、つまり一次性入数組、効率可能性高点

测试例、前未使用

$ar = array(
0,
array(id=> 1, id_u=>"001"、level=>1、next=>2、previons=>0、right=>5)、
array(id=>2、id_u=>003)レベル=>2、次=>0、前=>1、右=>3)、
配列(id=>3、id_u=>2、次= > 4、previons=> 1、right=> 0)、
array(id=> 4、id_u=>"007"、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"、レベル=>3、次=> 前=> 6、右=> 8)、
配列(id=> 8,id_u=>) ", 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、前=> 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」、レベル=>2、次=>0、前=>5、右=>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);

関数ツリー($ar,$i,$key,$level) {
if($ar[$i][id_u] == $key || $ar[$i][レベル] > $level) {
for($j=0;$j エコー " ";
echo "+--";
echo $ar[$i][id_u]."
";
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
";
for($i=1;$i if($ar[$i][id_u] == $value) {
echo " [$value]
";
tree($ar,$i,$value) ,$ar[$i][レベル]);
}
}
}
?>



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール