200分,谁能提供商品货物分类的编码方式?要求能快速查出某个商品所属类别,父类(有可能属于多个类别)

bingofei 2003-11-25 11:46:24
我现在在做一个网上商店,在设计数据库product表的时候,在商品分类上遇见了麻烦,不知如何处理才能解决一个商品属于多个类的问题。在书上看见了简单的编码介绍却没有详细内容。失败!
谁能帮帮忙?谢谢!
解决以后分数分两次给。
...全文
194 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyj 2003-11-25
  • 打赏
  • 举报
回复
不好意思,我没有说清楚意思:
就拿目前你的这两张表来说,
第一个问题,一个商品属于多类别的话,先将 FatherID 设置成 Varchar(文本) 类型,然后属于哪些类型,可以用类型代码+逗号存入这个字段中,例当前商品属于A、B、C或更多类,那么 FatherID 的值就应该是: A,B,C,更多类型...

第二个问题,如果两层不够,有多层类型,其实与上面的设置方法都是一样。
比如: Category 表有以下记录

CategoryID CategoryName FatherID
===================================
F1 主类型一
F2 主类型二
C1 子类型一 F1,F2
C2 子类型二 C1
===================================

这张表的以上记录解释为:
F1 为最顶层的类型,
C1 为第二层的类型,它的上一层是 F1 或是 F2
C2 为第三层的类型,它的上一层是 C1
以此类推,可以定义N层都没有问题。

到时个,你的编码里就可以直接带 CategoryID + 日期
bingofei 2003-11-25
  • 打赏
  • 举报
回复
能否说得清楚一点,我不大明白你的意思,另外,我的第二个问题如何解决呢?
先吃饭了。咱们吃完饭再讨论。
bingofei 2003-11-25
  • 打赏
  • 举报
回复
最底层商品的这张表?
那张表?
我暂时这样设计了Product和Category这两个表:
Product表略去其他字段,有ProductID、CategoryID
Category表有三个字段:CategoryID,CategoryName,FatherID
xieyj 2003-11-25
  • 打赏
  • 举报
回复
那只有在最底层商品的这张表里加多这个商品的对应关系,对应几个类型就几条记录,例如:
L1 对应了 AL1、BL1、CL1、DL1、EL1
那么这张表的记录应该是:
NL1200306AL1
NL1200306BL1
NL1200306CL1
NL1200306DL1
NL1200306EL1
bingofei 2003-11-25
  • 打赏
  • 举报
回复
解决的话我另外给你分。我在这儿结帖率几乎100%。这个放心
bingofei 2003-11-25
  • 打赏
  • 举报
回复
这样的话有两个问题:
1、如果商品所属种类较多的话,比如五个种类(这种情况不多,但是确实有可能发生),程序中如何处理?
2、如果两个层不够的话,比如有三层,有的商品只到了第二层,有的到了第三层,两者的编码如何判断是属于第几层?
xieyj 2003-11-25
  • 打赏
  • 举报
回复
200分怎么才100分?
xieyj 2003-11-25
  • 打赏
  • 举报
回复
一对多的关系,可以在编码的最后再加一位,判断如果这位有的话,那么就除了属于:N外还属于最后一位的类别名。

NL1200306TL2
如上说明:除了属于N的L1外还属于T类的L2
bingofei 2003-11-25
  • 打赏
  • 举报
回复
如果这个商品同时属于多个类呢?比如一张cd同时属于爱情和战争
xieyj 2003-11-25
  • 打赏
  • 举报
回复
要看商品的种类多少,编码规则的不同。不过一般商品都比较多。
比如你设计了商品的字典表如下:
第一层:主商品分类
第二层:子商品分类(属于第一层)
... ....
第N层:子子商品分类(属于第N-1层)
那么你的商品编码就给它定义:
主商品用一位数,子商品用两位数(因为更加明细),可以得出编码为:
NL1200306
N:代表主类型
L1:代表子类型分类
200306:代码2003年6月
xieyj 2003-11-25
  • 打赏
  • 举报
回复
可以不加日期,只是我习惯了,这样可以很直观的看出是什么时候加入的,日期是:yyyymmdd,年月日的组合。
bingofei 2003-11-25
  • 打赏
  • 举报
回复
ok,我大概知道了。
谢谢楼上两位。
不过“快乐天使”:“你的编码里就可以直接带 CategoryID + 日期”——加上日期有什么作用?日期可以重复的。是否应该是datetime?

另外,我会另外再开一个帖子给你100分。
fangpeng2003 2003-11-25
  • 打赏
  • 举报
回复
表1 Category
Cid Category
1 爱情
2 战争


表2 Product
Pid Product
1 CD
2 磁带

表3 C_P
id Cid Pid
1 1 1
2 2 1


符合你的要求:一张cd同时属于爱情和战争
我的命名不太规范

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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