SQL 建表问题?

chh2002 2006-03-03 09:14:44
我想建一张表,来表示超市的交易,假设超市有5种商品,分别为A B C D E,表记录交易情况,我想建成两个列,第一个表示交易的标识,用int就行,第二列表示改顾客所买的商品名的集合,如
1 {A}
2 {A B D}
3 {A E}
请问这样可以吗?那第二列的数据类型 应该是什么,才能表示集合呢?
...全文
129 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧