复杂的表设计问题,不知道要怎么设计好点呢 用户表A 产品大类表B产品小类表C要让每个用户都可以更改选择自己的产品(到小类产品为止) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 category表CategoryId(分类ID),CategoryIdP(父分类ID),CategoryName(分类名称)备注:categoryIdP为空的是一级分类user表user的相关信息字段,然后加一个,CategoryId(分类ID)->记录选择的分类号码 比如大类A表(aid,name) 1 A 2 B 3 C……小类B表(bid,aid,name) 1 1 Aac //这是属于大类A下面的 2 2 Bads //这是属于大类B下面的 3 1 Caasd //这是属于大类A下面的……小类的产品是属于大类里面的,大类不可以包括大类的。用户选择的时候可以任意选择大类或小类的,也没有上限不知道各位大哥有没有理解? 谢谢panzhiqi() 。不过我这个父类A表,子类B表都已经设计好了呀,只是现在要加个用户选择的功能 你到底想怎么选择呢?选择到哪里?如果想制作的好一点,就得使用javascript和php配合产生的一些程序了。不然直接使用ajax 既然原来的表结构无法改动那么方案一:建一个新表:id(流水号) userid(用户id) flag(1为大类,0为小类) cid(类id,可为大类或小类)方案二:建一个新表:id(流水号) userid(用户id) bid(大类id) aid(小类id) (bid和aid必有一个为0,另一个不为0 )方案三:建两个新表:id(流水号) userid(用户id) bid(大类id)id(流水号) userid(用户id) aid(小类id) 方案四:修改原表中数据(如果可能)比如修改产品大类表B中id使其全部加上1000000(或更大,保证可预见的将来,小类id不会增长到这个数),注意相关表需要同时修改,可能部分代码需要更改。成为: 大类A表 (aid,name) 1000001 A 2000001 B 3000001 C 同时增加一个表id(流水号) userid(用户id) cid(类id,>1000000 为大类,否则为小类)(也可以修改小类表也是一样效果) 在方案二的基础上修改一下:建一个新表:id(自动编号) userid(用户id) bid(大类id) aid(小类id) creatTime (记录时间)如果只选择大类,则小类ID为0否则就不用说了!呵呵 关于客户端与网页交互 关于编辑器的应用 奇特的session现象,你见过吗?? 如何改变HTML中radio值的Check属性 关于提取字符串的 麻烦各位帮我看看这段代码有什么问题吗 正则表达式的问题? 一个php类的困惑,不知是php的bug还是有意这样的。 如何在客户调用接口判断域名或者Ip是否授权 目前有个需求,用户需要连续6个月,每月订单数量大于或等同于60单以上,用户的身份会升级,php mysql 应该怎样实现啊? mysql 正则问题(高手进) PHP导入XML数据过程中,手动中断?高手请进?
CategoryId(分类ID),CategoryIdP(父分类ID),CategoryName(分类名称)
备注:categoryIdP为空的是一级分类user表
user的相关信息字段,然后加一个,CategoryId(分类ID)->记录选择的分类号码
大类A表
(aid,name)
1 A
2 B
3 C
……
小类B表
(bid,aid,name)
1 1 Aac //这是属于大类A下面的
2 2 Bads //这是属于大类B下面的
3 1 Caasd //这是属于大类A下面的
……
小类的产品是属于大类里面的,大类不可以包括大类的。
用户选择的时候可以任意选择大类或小类的,也没有上限不知道各位大哥有没有理解?
既然原来的表结构无法改动那么方案一:建一个新表:
id(流水号) userid(用户id) flag(1为大类,0为小类) cid(类id,可为大类或小类)
方案二:建一个新表:
id(流水号) userid(用户id) bid(大类id) aid(小类id)
(bid和aid必有一个为0,另一个不为0 )
方案三:建两个新表:
id(流水号) userid(用户id) bid(大类id)id(流水号) userid(用户id) aid(小类id) 方案四:
修改原表中数据(如果可能)
比如
修改产品大类表B中id使其全部加上1000000(或更大,保证可预见的将来,小类id不会增长到这个数),注意相关表需要同时修改,可能部分代码需要更改。
成为: 大类A表
(aid,name)
1000001 A
2000001 B
3000001 C 同时增加一个表
id(流水号) userid(用户id) cid(类id,>1000000 为大类,否则为小类)(也可以修改小类表也是一样效果)
否则就不用说了!呵呵