2010-07-20 36 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