2013-12-16 49 views
0

我有一個數據庫,其中包含一個遊戲角色列表。用戶需要搜索5個字符併爲每個選定的字符分配一個位置。該列表中的5個位置需要保存,以便稍後可以檢索。MySQL PHP從數據庫中選擇和編輯值

在VB.NET中,我只是創建了一個文件,其中包含選定的5及其分配的位置並從中讀取數據。

現在我正在嘗試創建一個基於Web的版本,我正在努力如何保存數據。大型數據庫位於MySQL表中。我猜測,爲每個用戶創建一個新表併爲他們選定的字符設置單獨的行是沒有意義的?我的想法是讓一個名爲'users'的表格將選定的字符存儲在一列中,並且其位置例如是「player1:pos4,player56:pos302,player322:pos392」等等,然後我可以稍後再分開這些值。

有沒有人有更高效的想法來解決這個問題?我很新,謝謝!

+2

不在一個字段中存儲多條數據。這否定了使用關係數據庫的目的,並且通常會導致大量痛苦難看的編碼來處理未來的糟糕設計。閱讀[數據庫規範化](http://en.wikipedia.org/wiki/Database_normalization) –

+0

做了一些閱讀,如何將用戶鏈接到選定的玩家的第三張表 – Matt

回答

0

我將創建3個基本表:users, characters, positions和1個查找表:usercharpos 3列:。user_id, char_id, pos_id每個用戶,角色和位置應該有一個唯一的ID作爲主鍵,然後,在usercharpos查找表我會關聯起來例如,我們有一個id = 5的用戶,它選擇了一些ids = 1,2,3,4,5的字符,併爲它們選擇了一些位置,用ids = 2,3,6,7,8。usercharpos將成爲:

user_id char_id pos_id 
    5   1  2 
    5   2  3 
    5   3  6 
    5   4  7 
    5   5  8 

這樣,您可以保持數據庫規範化,並且每個實體都有自己的表,而不必在一個字段中包含多個值。