2017-05-03 20 views
0

每個任務可以有許多子任務。任務只能在所有子任務完成時才能完成在mysql中有很多,如何建模?

task_id | parent_task_id | employee_id |完成

SELECT * from tasks WHERE task_id = x and parent_task_id = x 

現在假設我要分配一個任務多個員工(每個員工都可以在任何時間有多個任務。)

什麼是模擬的最佳方式?

+2

員工表 - < - 員工任務表> - 任務表..這樣一個任務或子任務可以有一個或多個員工相關。 EmployeeTasks具有EmployeeID,taskID,分配日期,EstCompletionDT和CompletionDT以及完成百分比,可能是員工可以更新完成%和註釋以指示進度的記錄。 – xQbert

+0

謝謝xQbert! – Aaron

+0

根據你的問題,我還會將任務和子任務分解到他們自己的表中。在任務中創建您的主(父)任務,並將子任務添加到SubTasks並參考Tasks.id。然後,在您的邏輯中,您需要檢查以確保在用戶完成/簽出主父任務之前,所有子任務都已完成。正常形式的 – mcriecken

回答

1

我會做這樣的事情:

TASKS 
    id 
    parent_id 
    completed 
    name 

    EMPLOYEES 
    id 
    name 

    EMPLOYEE_TASKS 
    id 
    employee_id 
    task_id 
1

將會有一個弱實體 EMPLOYEE_TASKS。這意味着,
1對多從EMPLOYEE_TABLE從TASKS_TABLE EMPLOYEE_TASKS

1對多到EMPLOYEE_TASKS。
現在您可以將Employee_id和Task_id分配給EMPLOYEE_TASKS