2014-01-20 62 views
3

我有一大堆練習,我當前正在將一列中的唯一索引值(int)和另一列中的練習名稱存儲在SQL表中。我試圖確定一種有效的方式來存儲訓練集。到目前爲止,我有兩個想法,但我不確定什麼是最有效的(從存儲和速度的角度來看)。這些是我正在考慮的想法:在phpMyAdmin中存儲大型數據集的有效方法SQL表

解決方案1 ​​創建一個新的表,每個練習都有一個列,每個練習有一個1或0取決於它是否在鍛鍊中。鍛鍊將是一個索引列,具有唯一的int id。

解決方案2創建一個新表格,其索引列表示唯一鍛鍊。第二列有一組與訓練集對應的數字。我更喜歡這個選項,它可以讓我在訓練中保持練習的順序。

雖然我目前僅有的〜800練習和〜400周的鍛鍊使列表(1)尺寸的陣列800×400,而(2)將是400×2。然而,與選項創建新的鍛鍊(讓我們只是說練習列表將被固定)表(1)會增長更快。

有沒有人有建議,如何最大限度地減少大小和保持在這樣的背景下的速度?

+2

phpMyAdmin不是數據庫,它只是MySQL的GUI。 MySQL是你的SQL數據庫。 – deceze

+0

帶'id'和'set name'的'set'表; 「id」,「setId」和「exerciseId」(可能還有'orderId')的'setexercises'表。 –

回答

0

我喜歡#2,但你也可以,如果你想要一個更強大的解決方案,有3個表:

  1. 行使
  2. 鍛鍊
  3. workout_exercises

此外,我通常不會將每個練習的練習存儲爲一個數組。使用sql來搜索該領域內的特定練習將很困難,例如:

哪些訓練包含練習XYZ?

您的桌子尺寸實際上很小。當您有10,000條記錄或100,000條記錄時,您可以開始考慮尺寸問題。

相關問題