2016-12-11 51 views
-2

我正在研究一個需要MySQL數據庫的項目。在一個mysql條目中存儲數組/列表

該項目是一個測驗/研究網站,需要存儲用戶登錄數據,然後存儲他們已保存的測驗的列表以及他們保存的每個測驗的每個問題的得分。所以說我們有用戶1.我想去一個名爲「user_content」的表,然後能夠看到他們已經保存了哪些測試以及他們的測試分數。

該測驗將在一個唯一的數據庫中進行,並通過一個外鍵進行引用。

問題是,我想在「user_content」部分有固定數量的列,所以我只需要一列具有用戶保存的測驗的所有外鍵。我不希望有一個系統,你有列「測驗-1」和「測驗-2」有沒有辦法只有一列存儲所有測驗外鍵列表或數組?存儲用戶最喜歡的測驗成績也是一樣,我想要一個單獨的列來存儲他們所有成績的數組/列表。這在MySQL中是否可行,以及實現這一目標的最佳方法是什麼? (這是使用PHP,而不是JavaScript)

+1

更新你的問題到目前爲止你做了什麼?並且用數據庫結構更新你的問題,只有解釋不足以解釋。 – Bhavin

+0

http://stackoverflow.com/questions/3653462/is-storing-a-delimited-list-in-a-database-column-really-that-bad/3653574 – e4c5

+0

請參閱規範化.... – Strawberry

回答

0

因此,在評論中,這可以在一個明確的RDBMS結構中完成,例如:測驗ID的表格,然後每個測驗外鍵的行項目條目返回到測驗ID表。

要回答你的問題,你可以將數組作爲json存儲到MySQL數據庫中,方法是將你的PHP數組傳入json_encode(),然後將其插入到MySQL字段中。從長遠來看,這可能會影響編寫查詢時的性能和靈活性。您將不得不在PHP中運行json_decode()以恢復陣列的結構。但這會解決問題的要求。

相關問題