ホームページ データベース mysql チュートリアル 如何定义深度未知的层次结构

如何定义深度未知的层次结构

Jun 07, 2016 pm 03:28 PM
どうやって 意味 レベル 深さ 構造

深度未知的层次结构在现实生活中经常出现,比如公司的员工组织关系、地域关系、文件系统中的树形结构等等,在展示的时候都可以很清楚的看到上下之间的关系。那么后台又是如何实现的呢。接下来介绍两种方法。 第一种:按编码从小到大的方式排序(展示比较容易

深度未知的层次结构在现实生活中经常出现,比如公司的员工组织关系、地域关系、文件系统中的树形结构等等,在展示的时候都可以很清楚的看到上下之间的关系。那么后台又是如何实现的呢。接下来介绍两种方法。

第一种:按编码从小到大的方式排序(展示比较容易)

用两列实现,第一列表示编码,第二列表示级数,比如

00 1

0001 2

0002 2

000101 3

。。。

那么在展示的时候只需要按照编码从小到大排序即可,但是这里有一个问题就是如何判断当前结点是否为叶子结点,这里采用的方法是判断当前值与下一个值是否具有子串的关系,如果有,则不是;否则是叶子结点。

第二种:自引用的父子关系(sql 不好实现)

也是用两列实现,第一列表示自增的主键id,第二列引用第一列parentid,比如

1 1

2 1

3 1

4 2

...

那么在展示的时候需要知道其最大深度,有n级则inner join n-1次。
可以从最低级向最高级inner join:每次保留parentid即可
或可以从最高级向最低级inner join:每次保留id即可。

比如:

--从高级向低级查找
select E.id,level1,level2,level3,E.name as level4 from (
select D.id,level1,level2,D.name as level3 from (
select B.id,A.name level1,B.name level2 from 
region as A inner join region as B
on A.id=B.parentid) as C inner join region as D
on C.id=D.parentid) as D inner join region as E
on D.id=E.parentid


--从最低级向最高级查找
select F.parentid,F.name level1,level2,level3,level4 from 
(
select D.parentid,D.name level2,level3,level4 from
(
select A.parentid,A.name level3,B.name level4 from 
region as A inner join region as B
on A.id=B.parentid) as C inner join region as D
on C.parentid=D.id) as E inner join region as F
on E.parentid=F.id
ログイン後にコピー

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhone で深度効果を使用する方法 [2023] iPhone で深度効果を使用する方法 [2023] Sep 07, 2023 pm 11:25 PM

iPhone で他と違う点が 1 つあるとすれば、それは iPhone のロック画面を処理する際に利用できるカスタマイズ オプションの数です。オプションの中には、壁紙がロック画面の時計ウィジェットと相互作用しているように見せる深度効果機能があります。深度効果について、いつ、どこで適用できるのか、iPhoneでの使い方などを解説します。 iPhone の深度効果とは何ですか?さまざまな要素を含む壁紙を追加すると、iPhone はそれを複数の深さのレイヤーに分割します。これを行うために、iOS は内蔵のニューラル エンジンを利用して壁紙内の深度情報を検出し、焦点を当てて表示したい被写体を選択した背景の他の要素から分離します。これにより、主人公が壁紙に登場するクールな効果が得られます。

ディスカスとは何ですか? Discuzの定義と機能紹介 ディスカスとは何ですか? Discuzの定義と機能紹介 Mar 03, 2024 am 10:33 AM

「Discuz の探索: 定義、機能、およびコード例」 インターネットの急速な発展に伴い、コミュニティ フォーラムは人々が情報を取得し、意見を交換するための重要なプラットフォームになりました。多くのコミュニティ フォーラム システムの中でも、Discuz は中国でよく知られたオープン ソース フォーラム ソフトウェアとして、大多数の Web サイト開発者や管理者に好まれています。それで、ディスカスとは何ですか?どのような機能があり、Web サイトにどのように役立つのでしょうか?この記事では、Discuz について詳しく紹介し、読者がDiscuz についてさらに学ぶのに役立つ具体的なコード例を添付します。

iOS 17: スタンバイモードでiPhoneの時計スタイルを変更する方法 iOS 17: スタンバイモードでiPhoneの時計スタイルを変更する方法 Sep 10, 2023 pm 09:21 PM

スタンバイは、iPhone が充電器に接続され、水平 (または横) 向きになっているときにアクティブになるロック画面モードです。これは 3 つの異なる画面で構成されており、そのうちの 1 つは全画面表示されます。時計のスタイルを変更する方法については、この記事を読んでください。 StandBy の 3 番目の画面には、垂直にスワイプできるさまざまなテーマで時刻と日付が表示されます。一部のテーマでは、温度や次のアラームなどの追加情報も表示されます。時計を押し続けると、デジタル、アナログ、ワールド、ソーラー、フローティングなどのさまざまなテーマを切り替えることができます。 Float はカスタマイズ可能な色の大きなバブル数字で時間を表示します。Solar はさまざまな色の太陽フレアのデザインを備えたより標準的なフォントを持ち、World は世界を強調表示して表示します。

ショートビデオの定義は何ですか? ショートビデオの定義は何ですか? Dec 23, 2020 pm 02:56 PM

ショートビデオの定義は、さまざまな新しいメディアプラットフォームで再生される高頻度プッシュビデオコンテンツを指し、移動中や短期間の余暇状態での視聴に適しており、通常は 5 分以内に新しいインターネットメディアで拡散されます。 ; コンテンツは、スキルの共有、ユーモア、ファッショントレンド、社会的ホットスポット、街頭インタビュー、公共福祉教育、広告の創造性、ビジネスのカスタマイズなどのテーマを組み合わせています。ショートビデオは、制作プロセスがシンプルで、制作の敷居が低く、参加者が多いという特徴があります。

Microsoft Wordでカスタム枠線を作成する方法 Microsoft Wordでカスタム枠線を作成する方法 Nov 18, 2023 pm 11:17 PM

学校のプロジェクトの表紙を刺激的なものにしたいですか?ワークブックのホームページにある素敵でエレガントな境界線ほど、他の提出物と比べて目立つものはありません。しかし、Microsoft Word の標準の単一行の枠線は非常に目立ちすぎて退屈なものになってしまいました。したがって、Microsoft Word 文書でカスタム枠線を作成して使用する手順を説明します。 Microsoft Word でカスタム枠線を作成する方法 カスタム枠線の作成は非常に簡単です。ただし、境界線が必要になります。ステップ 1 – カスタム枠線をダウンロードする インターネット上には無料の枠線がたくさんあります。このような枠線をダウンロードしました。ステップ 1 – インターネットでカスタム枠線を検索します。または、クリッピングに移動することもできます

MySQL複合主キーの定義と機能 MySQL複合主キーの定義と機能 Mar 15, 2024 pm 05:18 PM

MySQL の複合主キーは、テーブル内の複数のフィールドで構成される主キーを指し、各レコードを一意に識別するために使用されます。単一の主キーとは異なり、複合主キーは複数のフィールドの値を組み合わせて形成されます。テーブルを作成するときに、複数のフィールドを主キーとして指定することにより、複合主キーを定義できます。複合主キーの定義と機能を示すために、最初に users という名前のテーブルを作成します。このテーブルには、id、ユーザー名、電子メールの 3 つのフィールドが含まれます。id は自動インクリメントされる主キー、ユーザーです。

PHP インターフェースの概要とその定義方法 PHP インターフェースの概要とその定義方法 Mar 23, 2024 am 09:00 AM

PHP インターフェースの概要とその定義方法 PHP は、Web 開発で広く使用されているオープンソースのスクリプト言語であり、柔軟性があり、シンプルで強力です。 PHP では、インターフェイスは複数のクラス間で共通のメソッドを定義し、ポリモーフィズムを実現し、コードをより柔軟で再利用可能にするツールです。この記事では、PHP インターフェイスの概念とその定義方法を紹介し、その使用法を示す具体的なコード例を示します。 1. PHP インターフェイスの概念 インターフェイスはオブジェクト指向プログラミングにおいて重要な役割を果たし、クラス アプリケーションを定義します。

非巡回グラフを指定して、各深さの要素の最小合計を計算します。 非巡回グラフを指定して、各深さの要素の最小合計を計算します。 Sep 10, 2023 pm 06:49 PM

サイクルやループを含まないグラフは、非循環グラフと呼ばれます。ツリーは、すべてのノードが別の一意のノードに接続されている非循環グラフです。非巡回グラフは非巡回グラフとも呼ばれます。循環グラフと非循環グラフの違い - CycleGraph の中国語訳は次のようになります。循環グラフと非循環グラフは閉ループを形成します。グラフは閉ループを形成しません。深度ループはチャートに含まれていません。各深度はチャートに含まれています。例 1 循環グラフの例を見てみましょう-閉ループが存在する場合、循環グラフが形成されます。図 I はサイクル グラフを表しており、深さのノードは含まれていません。例 2 の翻訳は次のとおりです。 例 2 非巡回グラフの例で説明します。ツリーのルート ノードは深さゼロのノードと呼ばれます。図 II では、深さ 0 にルートは 1 つだけあり、それは 2 です。

See all articles