關於網路那些事...

網路行銷,SEO,網路趨勢,教學文章,網頁設計,生活時事

parent 與 child 資料結構

公司新專案,在執行學習測驗完成後,需要跳出一個問券讓使用者填寫,
問券的架構必須要在選取特定選項後,再展開相關對應的題目,
大致示意如下:

i、 請問你對於這次課程是否覺得有幫助?

  1. 有幫助

  2. 沒有(展開 1-1)

  3. 尚可 (展開 1-2)

    1-1 請問為何覺得沒有幫助?
    -內容沒興趣
    -講課時間過快
    -其他______

    1-2 請問您覺得可以更好的建議?
    -能加強實際體驗
    -可以提供更多參考文獻
    -時間可以在拉長

ii、請問您....

評估資料結構有兩種方式 (1) 單一表格 PARENT_ID與 CHILD_ID 方式,(2) 題目與選項拆開

(1) 單一表格 PARENT_ID與 CHILD_ID

範例:

問券題目選項

id parent_id child_id is_option title
1 0 0 0 請問你對於這次課程是否覺得有幫助?
2 1 0 1 有幫助
3 1 5 1 沒有
4 1 9 1 內容沒興趣
5 1 0 0 請問為何覺得沒有幫助?
6 1 0 1 內容沒興趣
7 1 0 1 講課時間過快
8 1 0 1 其他______
9 1 0 0 請問您....

填答紀錄

id member_id option_id other
1 23 3
2 23 8 太無聊

(2) 題目與選項拆開

範例:

題目

id parent_id title
1 0 請問你對於這次課程是否覺得有幫助?
2 1 請問為何覺得沒有幫助?
3 1 請問您覺得可以更好的建議?
4 0 請問您....

選項

id topic_id child_id title
1 1 0 有幫助
2 1 2 沒有
3 1 3 尚可
4 2 0 內容沒興趣
5 2 0 講課時間過快
6 2 0 其他______
7 3 0 能加強實際體驗
8 3 0 可以提供更多參考文獻
9 3 0 時間可以在拉長

填答紀錄

id member_id option_id other
1 23 2
2 23 6 太無聊

說明

最後,應該是採用第(1)種方式,將 parent_id 與 child_id 在同一張表統一指向參考主鍵 id,再透過其他 flag 方式來定義選項。
在資料表設計使用常見的 parent_id 來設計出無限子母層架構,is_option 則用於定義 0 為題目 1為選項,child_id 是在於選取該選項,要接續顯示子層的哪一題目


如果這篇文章對你有幫助,請在這裡點個讚



最新文章推薦