日期:2014-05-18  浏览次数:20584 次

MS-SQL数据库设计的一个问题(1个记录中对应多个记录)
我弄了一个设备清单的表device,用来管理库存的设备情况,需要记录借用人的名字和借用数量。

以前做这种类似的时候我是把借用人名字都放在一个字段username里,数量也都放在一个字段quantity

里,然后用分隔符隔开,比如一个设备有3个借用人,存到表格里就是这样:

  username quantity
路人甲^路人乙^路人丙 1^2^3

对应的就是甲借了1台,乙借了2台,丙借了3台。感觉这样不太规范看着也不舒服,有没什么其他较好的方法来存这些数据?

------解决方案--------------------
为什么不分开放呢?这样处理起来多麻烦!
------解决方案--------------------
路人甲 1
路人乙 2
路人丙 3
------解决方案--------------------
SQL code
设备名 借用人 借用数
A     甲      1
A     乙      2
B     丙      1

------解决方案--------------------
用一个字段,里面用josn格式存储怎么样
------解决方案--------------------
"A":1;"B":2;"C":3;
------解决方案--------------------
username quantity
路人甲 1
路人乙 2
路人丙 3
------解决方案--------------------
设备表(设备ID,......)
产品表(产品ID,......)
设备产品关联表(ID,设备ID,产品ID) ID为主键,可以用自增列
------解决方案--------------------
人员一张表
设备一张表
人员设备Mapping(借用关系) 一张表
------解决方案--------------------
设计三张表,这样数据比较合理
人员
设备
人员设备借还