2013-07-09 59 views
0

當前我只是循環思考數字,然後將它們作爲單獨的數據行添加。將多個數字/單詞存儲到單個數據庫字段中

DB(managedid是裁判外鍵)

---------------------- 
    | managedid | option | 
    |-----------|--------| 
    |  2  | 3 | 
    |  2  | 6 | 
    |  2  | 12 | 
    |  2  | 54 | 
    |  2  | 123 | 
    ---------------------- 

但可以有很多,然後更新它,我只是將已刪除所有和重新輸入。

但如果它能夠做這樣的事情:

------------------------------ 
    | managedid | option   | 
    |-----------|----------------| 
    |  2  | 3,6,12,54,123 | 
    ------------------------------ 

這樣不僅降低了單品的db表內還更新將simplier。

此刻我會追加說'|'每個數點他們輸出爆炸他們,讓他們再次成爲獨特的,但不知道是否有更好的方法

+2

的人誰相信,用逗號分隔列表中的單個記錄是一個好主意,數量真是不可思議;特別是當他們需要做一個選擇,其中'12'在列表中或類似的地方,然後抱怨性能,因爲它不能被索引在單獨的逗號分隔值上。不要規範化,因爲它減少了表格中的記錄數量,設計良好的數據庫可以處理表格中數十億條記錄......你只會在將來爲自己創造問題 –

+0

我明白你的信息,不需要得到任何個人價值,我將永遠需要獲得所有的這個值的所有這些都是爲什麼我想下去數組連接的路線。謝謝你的意見,雖然是會讓其他人閱讀 –

回答

3

在你的MySQL手冊

+0

這是我不記得的。 –

1

您可以將這些值與implode()的字符串組合起來,但值得注意的是,將所有值保留在單個字段中使得搜索非常不切實際,因爲它們無法合理編制索引。例如,如何查找選擇了選項3的所有managedid

0

感謝您的回覆,但因爲我永遠不想單獨分離任何值,我總是希望總價值我想要沿着這條路線。

所以我去了我最初的想法,並通過結果循環,並將它們通過'|'分開。

然後使用php函數爆炸,然後將它們分離出來以便在我的表單中使用。

加入他們:

 foreach ($options as $k => $opt) { $displayOptions .= $opt . '|'; }; 

讓他們

 $opts = explode('|',$displayOptions['options']); 
相關問題