0

次のようなデータ階層があります。

Country
-President // A Person
--Central
---Prime  Minister // A Person
----State
-----Chief Minister // A Person
------District
-------District Minister // A Person
--------Area
---------Area Minister (AM) // A Person

つまり、基本的に私がここでやろうとしていることは、私がしたいことFocusですArea Minister。彼は私のアプリケーションの魂になるので。その他は、階層の一部にすぎません。つまり、私が を追加しているArea Minister場合、彼/彼女は の下にありArea、の下にあり、Area下にDistrict Ministerあり、District MinisterDistrictにあり、District下にChief Ministerあり、SO ON......

私がここで行っているのは、これらの詳細をArea MinisterMySQL Databaseのデータベースに追加することです。データベースで行ったことは、次のテーブルを作成したことです。

  1. 国 // エントリの追加用
  2. 大統領 // 国の大統領を追加するため (ここでは country_id は外部キーです)
  3. Central // President の下に Central を追加するため (ここでは、president_id は外部キーです)
  4. ...
  5. ...
  6. ...
  7. ...
  8. ...
  9. エリア // 地区マネージャーの下にエリアを追加するため (したがって、district_manager_id は外部キーです)
  10. Area_Minister // Area に Area Minister (AM) を追加するため (ここでは area_id が外部キーです)

AM問題は、 throughの詳細を取得するためのものです**PHP**。私は探しているコアデータからデータをフェッチしていますが、関連するデータもいくつかの時点で必要**MySQL**です。AMしかし、核心はAM - Data. ただし、この方法を使用している場合は、からデータをフェッチしようとしてい10 - TEN TABLESます。私が感じるのは痛みです。

Area必要なデータを取得するために、 ID を にAM、次にDistrict MinisterID をArea、というように階層の開始レベルに一致させます。

このプロセスを最小限に抑えるためにできる方法はありますか。私が欲しいコアデータとしてはAM i.e Area Manager's Data.

私がそれをうまく構成できる方法なら何でも。または、誰かが助けを求めている場合、ストアドプロシージャを介してこれを行うことができるかどうかについての洞察を誰かが提供してくれるかもしれません。

PHP のコードの複雑さを軽減する方法と、MySQL の非常に多くのテーブルを削減する方法を探していますAM

親切にアドバイス。

4

2 に答える 2