0
我試圖將一個簡單的應用程序概念化爲我和我的朋友來記錄我們的鍛鍊。我似乎無法理解如何對數據進行建模。每個用戶都可以輸入鍛鍊。鍛鍊有一個或多個鍛鍊。每個練習都有一組或更多組。每組至少有1個重量。下面是我能夠想到的最好的。|如何在用戶有不同的輸入量時考慮數據庫設計
Workout Table
1 User_A 9-Jul
2 User_B 9-Jul
3 User_C 9-Jul
4 User_A 10-Jul
5 User_D 10-Jul
6 User_B 11-Jul
Exercise Table
1 Bench 3 reps 135 lbs Workout_1
2 Bench 3 reps 185 lbs Workout_1
3 Deadlift 5 reps 225 lbs Workout_2
我在正確的軌道上嗎?這將是我第一次製作任何不是博客教程的應用程序。這看起來好像運動表會非常快速地變大。也許這是正常的,但?
謝謝!是的,因爲我理解了這一方,所以我放棄了用戶表。這是我沒有信心的其餘部分。爲什麼把練習放在自己的桌子上更有意義,對我來說似乎沒有必要?在規範化和大多數例子中,我覺得它是有道理的,因爲它會像ItemID,ItemName,ItemCostPerUnit,但真的有更快的自己的表只是爲了從名稱更改爲ID? – Ryan
在鍛鍊表上,您可以將其放在WorkoutExercise表上。然而,標準化表格可能會做什麼的更新異常存在危險。例如,假設你想將運動類型從Deadlift改爲Dead-Lift(我知道我錯了,但這只是爲了舉例)。並且讓我們進一步說,您的鍛鍊鍛鍊表中已經有100萬條記錄。所以,這意味着您必須爲此更新1M記錄。現在,相比之下,如果您有鍛鍊表格,則只更新一條記錄! – Edper
此外,如果您的用戶將其輸入爲Deedlift或Deadlifts,那麼您將在那裏出現不一致的記錄,但是如果您有用於示例的表不會造成問題。現在,我並不是說你不能去規範化,但我想說的是在這個設計中也有一個折衷。 – Edper