2011-06-03 81 views
0

我正在設計一個活動管理系統(用於個人活動,如bdays等+企業活動+活動活動)。關係是事件屬於一個活動,事件有天和天有會話。與此同時,每一個(活動,事件,日期,會話)可以具有相同的屬性,如預算,目標,任務等。因此,這些應存儲在他們自己的表中,如event_mission,event_goal,event_budget表或應該他們在(事件,競選,天,會話)表中作爲列被拋出?活動管理架構設計

還有其他一些屬性,如位置,區域內的位置,邀請的人,參加的人等等,這些都適合上面的每一個,所以我可以再次將它們組合到它們自己的表中,就像event_loc,campaing_loc,days_loc ,session_loc或使用一個位置表在每個級別分解它們併爲每個級別設置標誌。

當然這隻適用於促銷活動而不適用於個人活動。

+0

我會說你擁有的表格最多,表達力和靈活性就是你的數據庫。 – 2011-06-03 20:01:43

回答

1

我的意見是,如果它是一個參數(如位置描述,或最大預算值),它應該進入每個表內。

如果可能有很多關係 - 比如事件有很多人蔘加 - 它應該有單獨的表格。

+0

因此,如果每個參數都在父表中,那麼如果我需要向用戶顯示一個度量標準:「顯示事件發生的所有位置」我必須加入這4個表來拉取所有位置? – Yudi 2011-06-03 20:18:33

+0

我個人會考慮每個模型,如果它必須具有您指定的每個屬性。例如,爲什麼該活動應該有一個位置,當發生許多事件並且這些位置有位置?但要回答你的問題 - 如果你想顯示每個地點的事件,你只需選擇一個表。如果您想顯示廣告系列的每個事件,那麼它就是一個聯合。 – koressak 2011-06-03 20:27:15

0

@ koressak答案是正確的。基本上,如果某個廣告系列只能有一個預算,那麼將該預算存儲在與其他廣告系列相同的表格中。但想一想,如果您需要保留一段時間的預算數字的歷史記錄......例如如果預算增加。你需要保持歷史嗎?如果不是,那麼以上是好的;否則將其分解到單獨的表中。如果您使用單個表來存儲所有這些預算,那麼它將起作用,但您的代碼將更加棘手。