任務 父子任務的關係在系統中的表示

2021-04-25 22:51:03 字數 1368 閱讀 9476

任務、父子任務的關係在系統中的表示

erp、專案管理系統、進度管理系統、物流系統、狀態跟蹤系統、批處理任務分解系統等軟體系統中,大多數都會遇到乙個類似描述任務的需求。

比如在批處理任務分解系統中,任務關係表需要記錄父任務、子任務,也要記錄父子任務這個關係。父任務和子任務都是任務,只在任務關係表中記錄這些任務即可。而父子關係怎麼描述呢?

資料結構中有樹的概念,樹可以表示父子關係。如下圖所示一棵樹:

可以至少有兩種設計,來描述這棵樹的節點間的父子關係。

1)通過節點編碼來表示父子關係。給每個節點編碼加上父節點編碼的字首,而每一層節點的編碼長度固定,節點如果沒有父節點,則字首為空。由以上規則可以定義以上九個節點的編碼。①:

01 ②:

0101 ③

:0102 ④

:0103 ⑤

:010101 ⑥

:010102 ⑦

:010103 ⑧

:010304 ⑨

:010305

由上面的節點編碼加上編碼規則可以知道,

①的子節點為②、

③、④,而

⑤、⑥、

⑦為節點

②的子節點,

④為節點⑧、

⑨的父節點。

2)通過記錄父節點的編碼主鍵來表示父子關係。給每個節點附加乙個「父節點」屬性,指示它的父節點為哪乙個節點。**設計如下表1

表1節點號

編碼主鍵

父節點編碼主鍵①1

-②21

③31④

41⑤5

2⑥62

⑦72⑧

84⑨9

4由以上的附加「父節點編碼主鍵」屬性值可以清楚地知道乙個節點的父節點。但是要知道乙個節點是否有子節點,則只能通過搜尋全表,查詢哪個節點的「父節點編碼主鍵」值與當前節點的「編碼主鍵」是否相同。可以冗餘設計**,增加「第乙個子節點編碼主鍵」屬性。**設計如下:表2

節點號編碼主鍵

父節點編碼主鍵

第乙個子節點編碼主鍵①1

- 2②2 1

5③31 -

④4 1

8⑤52 -

⑥6 2

-⑦72 -

⑧8 4

-⑨94 -

這樣的設計,主要是方便查詢乙個節點是否有子節點,以及子節點的資料值。

3)混合設計模式。即以上兩種設計同時存在,這樣能夠提供更加完善的分解、查詢模式,分解和合併節點。

任務表中不但需要描述父子關係,還要描述兄弟關係、堂兄弟關係、隔輩關係、堂父子關係。那麼在以上兩種設計中,稍加巧妙的拼接與轉換,即可實現另外這些關係的描述。若你想繼續鑽研這些關係,請花點時間思考一下。

在Ant中引用外部的任務

ant 為使用者提供了大量的任務,更為可貴的是,它允許使用者使用其它開發者開發的任務。在 ant主頁上就有乙個外部任務列表 只要你願意,你也可以很快寫出乙個自己的任務來,看看本系列的 編寫自定義任務,輕鬆擴充套件 ant 就行了。在 ant中引用外部任務有兩種情況 一 ant 定義的可選任務 這些任...

linux系統中的延時任務及定時任務

設定延時任務後,系統在指定的時間會做指定的動作,不過是一次性的。at命令 at 時間 設定任務時間 at 命令 任務動作 at ctrl d 用ctrl d發起任務 5 20在 mnt建立4個檔案 從現在開始1分中後刪除 mnt的所有檔案。at l 檢視任務列表 at c 任務號 檢視任務內容 at...

SpringBoot中的常見任務 非同步任務

告訴spring這是乙個非同步的方法,還需要在main方法中開始非同步請求,也就是加註解 async 註解的作用 告訴spring這是乙個非同步方法,自己開乙個執行緒在後台跑 service public class asyncservice catch interruptedexception e...