我正在爲我工作的學校寫一堂課觀察系統。使用刻度框時,我應該使用序列化數組還是單獨的數據庫表?
數據庫結構如下所示:
我目前正在開發的Observations
表中的輸入形式和不少的領域都需要打勾盒。例如,Focus
字段可以是12個選項中的任意數量; Positive
和Negative
字段每個可以是近二十個選項的任意數量。
在上面的圖片中,我用VARCHAR
來允許serialize
'd數組。
但是,我開始懷疑這是否是最佳路線,尤其是考慮到我可能想對數據進行一些半複雜分析,如top 5 staff for a specific positive attribute such as behaviour
(這將涉及統計behaviour
屬性的數量每名工作人員根據Observations
表中的Positive
字段)。
這裏有兩個問題;
- 我應該使用額外的表嗎?對於
Focus
我會想象第一個表有三個字段 -ID
(鍵和自動增量),Observation_ID
和Focus_ID
。Focus_ID
將與另一個表focii
或其他簡單地具有兩個字段的表-Focus_ID
和Title
相關聯。我需要兩張表Focus
和三張表Positive
/Development
(相同的選項,但不同的日誌記錄)。 - 如果我使用這些額外的數據庫表,將我的SQL語句是什麼努力來檢索
Observations
表包括所有相關focuses
,positives
和developments
的信息時是怎樣的?
由於提前,
+1清晰的數據庫方案的問題和圖像。 – Sherlock