一个表可以在一行中有多个单列的记录吗?

时间:2015-08-11 04:08:52

标签: mysql row

有一张表'项目'列:item_name,i_code,items_left&价钱。它存储商店销售的所有商品。还有另一张桌子'客户'。它存储了访问该商店的所有客户的记录。我想记录特定客户购买的所有商品。我想创建一个专栏&item 39ought'在'客户'表,用于存储特定客户购买的所有商品的商品代码。但是,为特定客户行提供多个商品代码是不可能的。请帮我在一行客户中记录items_bought的多条记录。

2 个答案:

答案 0 :(得分:1)

这是可能的,但不建议, 您可以使用
或使用逗号或environment.newline

将商品代码保存在客户表中

但除了显示

之外没有任何用处

我建议的解决方案是创建一个新表CustomerItem,具有CustomerId,ItemId和其他常见属性,应该在Customer&购买率,购买时间等项目(上述方法无法做到)

答案 1 :(得分:0)

答案是,是的,每行的单个字段中可以有多个值。逗号分隔字段可以是解决方案。

如果您使用的是关系数据库,那么如果您创建一个新表,比如说items_bought,那么您的生活会更容易,这将保留客户和购买商品之间的关系。

例如

create table `items_bought`
 (id int not null primary key,
 item_id int not null,
 customer_id int not null)

每个字段item_idcustomer_id将分别拥有items.idcustomers.id表字段的外键。

这样您就不需要管理字符串并解析逗号分隔值。您可以简单地查询表格,如:

select * 
from `items` i 
 inner join `items_bought` ib on i.id = ib.item_id
 inner join `customers` c on ib.customer_id = c.id

上述查询将返回已购买至少一件商品的客户的所有客户和商品信息。