簡體   English   中英

如何編寫這個遞歸 MySQL 程序?

[英]How do I write this recursive MySQL procedure?

我有一個 MySQL 數據庫,其中包含 2 個(相關)表:員工、主管。

員工包含:員工 ID、姓名、成本中心

和 Supervisors 包含:InstanceID、StaffID、SupervisorID、Obsolete

Staff 表包含公司中的所有員工,Supervisors 表將一個 StaffID (StaffID) 鏈接到另一個 StaffID (SupervisorID)。 如果我們創建一個新的關系(即員工 A 不再向員工 B 報告,而是向員工 C 報告),那么我們創建一個新記錄並將原來的“過時”標志設置為“真”。

我這樣安排是因為主管:下屬關系可能會發生變化,並且不能保證正確:我們希望能夠更改它們並保持審計跟蹤。

我需要做的是獲取 CostCentres 的遞歸列表。

這意味着,假設我從某個成本中心開始。 我得到了該成本中心所有員工的名單,並生成了他們所有下屬的名單。 然后我得到所有這些成本中心的列表,並為每個成本中心重復。

我已經有一些程序,其中兩個可能是相關的:

CALL getCostCentre(iCostCentre) /* get a list of all staff in iCostCentre) */
CALL getSupervisees(iSupervisor) /* get a list of all staff who report to iSupervisor */

我將創建一個包含員工和主管的表,我們稱之為員工,以及另一個用於保存關系的表(每個表都有一個刪除標志字段和一個用於審計試驗的更改日期字段)。 表關系有從屬和主控。 還有一個成本中心表,其中包含對員工的引用。 周圍有一些開源 CRM,您可以下載(可能使用它)並最終學習如何構建您的數據庫。 關於成本中心,可以參考標准CRM中的表Group

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM