可变长度的集合List 怎么存储到数据库中

可变长度的集合List<long> 如何存储到数据库中?
1:对于SQL和mysql关系数据库来说,如何存储长度可变的集合呢?
比如
class Person
{
   public string name;
   public int age;
   public int gender;

   //goods表示此人拥有的物品,它的长度可能是0--N
   public List<long> goods; 
}
Person pone;
如何将pone的数据存储到数据库中? 尤其是如何存储可变长度的集合List<long> goods; ?

------解决思路----------------------
关系数据库并不是层状数据库,它只能保存类似Excel工作表那样的“平面”数据。如果你专门学习过关系数据库就会学到了,所有的数据都是平面的、关系的。例如数据库表: 某人拥有的物品长度(Person_Name, 长度) ,这个表的两个字段,一个是外键,引用 Person 表的主键,另一个就是你的“长度”。
------解决思路----------------------
person一张表 goods一张表 goods里面存person的id 
------解决思路----------------------
子表子表子表
------解决思路----------------------
引用:
Quote: 引用:

关系数据库并不是层状数据库,它只能保存类似Excel工作表那样的“平面”数据。如果你专门学习过关系数据库就会学到了,所有的数据都是平面的、关系的。例如数据库表: 某人拥有的物品长度(Person_Name, 长度) ,这个表的两个字段,一个是外键,引用 Person 表的主键,另一个就是你的“长度”。

我感觉您说的挺抽象的,我举例吧,是不是需要另外建一个表,然后将物品集合插入进去.
人物1 物品1
人物1 物品2
人物1 物品3
人物1 物品4
...
....
将List<long> goods的所有物品插入到该表,增加goods.Count行记录.当goods读取数据时,从该表select 人物1 from Name出去呢?

不用存人物1 你这边放个人物1的ID就可以了 
别告诉我你的表没有ID这个主键
------解决思路----------------------
有多种方法可将可变长度的数据集合一次性插入数据库,只是你暂时还没去了解。
不过,我建议你在了解上面的这些方法之前先合理的设计表及其关系,你提问中已经看得出来,如果你要这样插入的话,你的表设计存在不合理。
------解决思路----------------------
因为不了解你实际的需求,比如这些long要不要跟其它地方关联查询,或者本身会不会作为查询条件之一,所以稳妥点的做法都是做主子表,但如果你这个数据仅仅是记录,而且所在表的查询频率并不频繁,甚至只是基础数据,基本都是从缓存读取的话,破坏数据库设计范式也许不可,用逗号分割,合并成一个字符串记录进一个字段,当然字段长度你就要预估了
------解决思路----------------------
如何存储可变长度的集合List<long> goods; ?
可将 goods 用 xml序列化 后存入 XML 类型字段
------解决思路----------------------
序列化json 存字符串 

到时候 可以反序列化回来..

不过LZ你确实有点那个了...因为这本身 真的是主重的关系...

不晓得你在纠结什么...

而且基于你这样 把"对象的对象集合"存入到一个"字段"中的做法 估计是你自创的吧...