0

我對數據庫非常陌生,並期待開發具有一些高級功能的應用程序。決定數據庫表架構

在這裏,我將有一個用戶的表,就像下面的一張表。 enter image description here

因此,在體育專欄中,價值將是用戶所玩的體育項目。他們將從體育臺的記錄中獲得一些ID。

所以我的問題是如何將這些多個值存儲在同一行同一列?

感謝

PS:請注意,我是一個初學者...

+0

根據您打算如何使用這些值,您可以創建一個值數組並將它們存儲在列中。 –

+0

@ The42ndDoctor,這打破了第一種正常形式。所以不,不這樣做。 – Devon

+0

@Devon的確如此。我沒有想到這一點。好點子。 –

回答

5

正確的方式做,這將維持三個不同的表。

用戶: ID,姓名,年齡

運動: ID,名稱

UserSport: USER_ID,sport_id

的UserSport引用表中的主鍵(id)兩個表格(用戶和運動)並且包含用戶參與的每項運動的單獨條目。

UserSport的主鍵應該是user_id和sport_id的組合鍵。這使您可以爲每個用戶分配多行,爲每項運動分配多個行,但用戶和運動的組合是唯一的。

+0

這是做這件事的理想方式。但是,如果您想保持一行,則可以保留逗號分隔值。但是,當你的應用程序代碼需要時,你必須自己提取值,你將不會從查詢中得到輸出。 – Panther

+0

@Panther那麼,你可以在你的查詢中使用LIKE搜索逗號分隔值,但是準確度可能不盡如人意。 –

+0

@ The42ndDoctor這是我們需要做一些解決方法。理想情況下,它應該像德文建議的那樣。休息一個人可以創建他自己的方式,我已經根據需要做了很多次逗號分隔。 – Panther