SQL 建表问题?

chh2002 2006-03-03 09:14:44
我想建一张表,来表示超市的交易,假设超市有5种商品,分别为A B C D E,表记录交易情况,我想建成两个列,第一个表示交易的标识,用int就行,第二列表示改顾客所买的商品名的集合,如
1 {A}
2 {A B D}
3 {A E}
请问这样可以吗?那第二列的数据类型 应该是什么,才能表示集合呢?
...全文
86 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
filebat 2006-03-05
nvarchar就是unicode编码,存储空间大小不固定的字符类型。

要不,你用binary数据类型吧。
然后从低位到高位每一位表示一种货物,0表示没有买,1表示买了。
这样做有一个小问题就是,binary是用十六进制显示的,
所以如果你不习惯的话,自己再写一个显示转化的函数,让它以二进制显示吧。

顺便提一下,SQLSERVER支持二进制的位运算,如&, |等。
  • 打赏
  • 举报
回复
chh2002 2006-03-04
能否具体解释一下nvarchar,
还是我用这种方式存储
id A B C D E
1 1 0 0 0 0
2 1 1 0 1 0
3 1 0 0 0 1
买的为1,没买的为0,但是如果改超市有上千种,是不是太大了呢?
  • 打赏
  • 举报
回复
wgsasd311 2006-03-04
SQL SERVER2000无此功能,这是对象关系型数据库所特有的,不知SQL SERVER 2005是否支持对自定义对象类型(作为字段类型)
  • 打赏
  • 举报
回复
ping3000 2006-03-04
用Nvarchar吧 ,把商品用","或者";"分割开,如A,B,E
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-03 09:14
社区公告
暂无公告