2013-07-22 77 views
3

使用PHP & Mysql-在mysql中處理大型遞歸查詢的最佳方式是什麼?

我有一個120,000名僱員的名單。每個人都有一個主管領域的主管員工編號。

我正在尋找建立一些東西,以格式顯示樹中的員工。鑑於如果您點擊任何人,您可以選擇下載其下的所有員工(及其信息)。

所以有兩個問題 - 我應該寫我的腳本來處理查詢(我有但是很慢)或者應該創建某種幫助器表/視圖?我正在尋找這方面的最佳做法。

另外我相信這已經做了一百萬次。有沒有一個能處理組織層次的好班級?

+0

你目前使用的是什麼查詢? –

+4

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ – Barmar

+0

@Barmar,這是一篇很棒的文章。謝謝你的鏈接。 – blankip

回答

1

執行此操作的標準方法是使用一張表來存儲所有員工,主鍵字段爲employee_id,而supervisor_id爲「自聯接」字段 - 表示此值字段指向該員工主管的員工ID。就顯示員工樹而言 - 對於相對較小的樹,可以在創建頁面時將整個樹結構發送到客戶端的瀏覽器,並且可以在從存儲的數據點擊節點時顯示樹節點。但是,對於較大的樹,最好根據需要獲取數據,即單擊節點時。如果您有120,000名員工,那麼您可能需要使用後面的方法。

+0

目前正在設置。我可以輕鬆地獲得直屬下屬,但是如果我有一個VP,則可能會有6個級別,我至少需要打印所有內容的選項。 – blankip

相關問題