数据表关系:
大类:
bigclass (id,name)
小类:(必属于某一大类,通过bid与大类关联;可能无子类,也可能拥有子类,子类通过sid与小类关联)
smallclass (id,bid,name)
子类:
cubclass (id,sid,name)
产品:(要么直接挂在小类上,sid关联,要么依靠cid联接子类)
product (id,sid,cid,name,...)因此,写入到table时,困难出现了,单选框因为字段名不同不可用,不知道怎么办才能将这sid、cid使得两个当中只有一个有效,另一个又作如何处理?或者提出另外的处理这复杂关系的办法。分不多,多说声谢谢,十分感谢,大恩不言谢
大类:
bigclass (id,name)
小类:(必属于某一大类,通过bid与大类关联;可能无子类,也可能拥有子类,子类通过sid与小类关联)
smallclass (id,bid,name)
子类:
cubclass (id,sid,name)
产品:(要么直接挂在小类上,sid关联,要么依靠cid联接子类)
product (id,sid,cid,name,...)因此,写入到table时,困难出现了,单选框因为字段名不同不可用,不知道怎么办才能将这sid、cid使得两个当中只有一个有效,另一个又作如何处理?或者提出另外的处理这复杂关系的办法。分不多,多说声谢谢,十分感谢,大恩不言谢
1.category
===============
cat_id cat_pid cat_name ..
2.product
================
id cat_id product_name
1 0 大类
2 0 大类
3 2 小类 //属于 2 这个大类的
4 3 子类 //属于 3 这个小类的
5 4 产品 //属于 4这个子类的。
用pid 来形成树形结构
map 来形成路径。
例如
0 根类别 0 0
1 大类别一 0 01
2 大类别二 0 02
3 类别1_1 1 013
3 类别2_1 1 023然后产品就只要和class 的id 挂接就好了。
| 大类 |
|
|
|
| 小类 |
| \
| \
| | 子类 |
| /
| /
| 产品 |如上图,本来是无子类的,后来根据需要在其中一些小类上再细分化出子类。由此造成如此麻烦。如使用 cat (id,pid,path,name)
下直接product (id,cat_id,...)
那cat保存方式应为
1 0 0 name_aa
2 0 0 name_bb
3 1 01 name_aa_1
4 2 011 name_aa_1_1
5 1 02 name_bb_1
....
....
对吗?这种“树形”方法很好,但还有些问题:
查询的时候通过path来判断大类是否有小类或小类是否有子类?
这个判断式该是怎么写的呢?