我接管了一個存儲健身信息的數據庫,並且我們正在討論某個表以及它應該保持爲一張表還是分成三張表。該數據庫表應該規範化嗎?
今天,有一個名爲一個表:鍛鍊具有以下字段
ID,exercise_id,代表,重量,日期,PERSON_ID
所以,如果我做了3個不同的2套有一天練習,那天我會在那張桌上有6條記錄。例如:
ID,exercise_id,代表,重量,日期,PERSON_ID
1,1,10,100,1/1/2010,10
2,1,10,100,1/1/2010,10
3,1,10,100,1/1/2010,10
4,2,10,100,1/1/2010,10
5,2,10,100,1/1/2010,10
6,2,10,100,1/1/2010,10
所以,問題是,由於有多種一些冗餘數據(日期,PERSONID,exercise_id)記錄,這應該歸到三個表
WorkoutSummary:
- ID
- 最新
- 爲person_id
WorkoutExercise:
- ID
- workout_id(外鍵WorkoutSummary )
- exercise_id
WorkoutSets:
- ID
- workout_exercise_id(外鍵WorkoutExercise)
- 代表
- 重量
我猜的缺點是查詢將這個重構後,反應速度爲現在我們需要連接3個表來執行之前沒有連接的相同查詢。重構的好處使得將來可以在鍛鍊總結級別或鍛鍊級別添加新的字段而無需添加更多重複。
對此辯論有何反饋?
什麼數據庫正在使用? – 2010-05-04 14:39:00