2010-07-20 57 views
0

我需要存儲一組值,例如A,B,C下的一個SQL表格的國家列。你應該讓我知道是否有任何數據類型能夠將一組值存儲在SQL表列中?如何在SQL表中存儲一組值

在此先感謝。

回答

4

要存儲一個集合,通常會創建一個具有外鍵關係的第二個表。

MySQL還有一些功能可以在列中存儲逗號分隔列表,如find_in_set。這被認爲是不好的形式,儘管你可以選擇它來進行一次快速的黑客攻擊。

編輯:由於某種原因,Bakkal刪除了他的答案。他的回答是新的給我,我認爲這是相當有趣的,所以我將它拷貝到這裏:

https://dev.mysql.com/doc/refman/5.7/en/set.html

這允許你存儲在一列一小部分(小於65項)。

+0

的聯繫是現在死了 – 2015-10-23 18:47:24

+1

@GuilhermeBernal:更新到新的鏈路 – Andomar 2015-10-23 21:25:59

2

這可能是不好的數據庫設計。

從我所看到的,你應該創建一個新的表或者如果你知道你將只能有3個國家,擁有3個獨立的列

+0

如果不知道最終用戶的需求,我們不能評論任何好的和壞的。如果他的老闆認爲同樣的話他/她會做什麼。如果它的要求,無論好壞,都儘可能使用相同的設計。據我所知,並不是所有的情況都是按照我們自己的方式進行的,所以我們以自己的方式表現出這些傢伙的那種虛僞,我認爲我們應該幫助他們移動他們自己所需的方式,同時也讓他們看到自己的利弊。 – 2010-07-20 05:33:07

+0

這就是爲什麼我說*可能*壞 – NullUserException 2010-07-20 05:45:54

+0

-1對Amit的評論(這是一個恥辱,我們不能*實際*降低評論) - 業務領域是數據需求的來源,但這取決於我們作爲開發人員實施它。在一行中重複組會突破1NF,應儘可能避免。 – 2010-07-20 12:17:49