如何处理表中单个字段的多个值?

时间:2013-03-13 06:56:51

标签: mysql database database-design

我在phpmyadmin users中有1个表,其中包含以下字段。

users

uid |名字| contact.no

单个用户可以有多个联系号码 解决此问题的一种方法是使用一个表格作为联系号码,并将其主键传递给users表 除此之外还有其他任何方式。 我们可以在contact.no字段中实现数组结构吗?

2 个答案:

答案 0 :(得分:3)

您可以在此处添加逗号并保存多个数字,但它会杀死RDMSNormalization的整个概念。这不是一个好的数据库设计。因此,建议对表进行规范化,而不是将这些多个信息存储在一个字段中。如果你还有一个表,数据库并没有真正强调自己。

可以找到一份写得很好的解释Here on Microsoft Website

答案 1 :(得分:0)

您不必为每种类型的条目创建多个表,只需要一个更健壮的表结构。确保需要规范化的信息格式一致。

用户: uid |名字|用户名

1,Bob,bcratchet

<强>的信息: iid | itype | icontent |流体

1,cell,000.000.0000
2,home,000.000.0000    
3,home_addr,1234 Anystreet, anytown USA
4,work_addr,4567 Anystreet, anytown USA

从用户u,Info i中选择*,其中u.uid = i.uid和name =“Bob”;

在任何应用程序中将其拉入多维数组中,你就可以了。

修改 <强> * 理想情况下它会更进一步,并显示像itypes这样的表格,你可以进一步规范化类型,如:

itypes: itype_id | ITYPE

1,cell
2,home
3,home_addr
4,work_addr

然后在Info表中,它会说“itype_id”而不是“itype”。