请看下面两张图
由上图中可以看到
[平板电脑]下分,品牌,尺寸,硬盘容量,操作系统
[笔记本]下分, 品牌,价格,尺寸,平台,显卡
由上可以看出这两种分类,同时存在品牌和尺寸这两个属性
请问各位大牛如何控制不同种类下显示不同的一级属性!并且品牌和尺寸这两个属性在笔记本和平板电脑中同时出现时怎样才能避免冗余.
在看下面两张图
同样是品牌,但子属性又不一样!请问,在设计中是否针对不同的品牌建立了不同的子属性?
如果这样,我们又如何将这两个分类的联想和惠普包含的产品同时查询出来?
并且,手机,电话,等分类里也会存在联想这个品牌,不同分类关联的是同一个联想吗?
我们的系统中也有这个的实现。品牌、价格之类的我们定义为标签组,每个分类会对应一些标签组(笔记本对应品牌、价格等),具体的品牌(联想、宏基),价格等我们定义为标签,然后一个标签组中会包含对应的一些标签。具体到每个产品的话也会对应一些标签,这样就可以出来你截图的效果了。
感谢您的指导,给了我一种茅塞顿开的感觉,我之前一直只想到要用动态属性去设计这个东西,没有想到可以用标签来实现.
如果是这样的话,我们相当于有很多标签组
笔记本下面有品牌,价格标签组
台式机下面有品牌,价格标签组
洗衣机下面有品牌,价格标签组
请问,在您的系统实现下,是否为每个不同的分类都创建了品牌,价格这个标签组.
@星隐: 不用定义那么多的标签组。就拿品牌来说吧,笔记本有联想、宏基等,而洗衣机有小天鹅等,那这时候我们可不想搜索笔记本的时候出来小天鹅这个品牌了,那我们就需要把具体的标签对应到分类上。就是每个分类可以包含哪些标签(笔记本关联 联想、宏基等)。可能我们的设计还不够好,希望多讨论讨论啊~~
@webaspx: 我又有点乱了!按之前的逻辑来说应该是 分类-标签组-标签 那么如果直接把标签对应分类,岂不是把标签组给绕过了.
@星隐: 确实如你所说的,所以我们现在把分类和标签分开了,就直接对应标签组了。然后显示下图的时候就直接Distinct产品里面的标签显示了,之前那样子的设计是为了显示分类中所有标签方便而已,所有现在给去掉了。
你是说数据库设计?还是……
嗯,就是数据库设计.
自定义表单
能给个详细的思路吗?谢谢.
你说的是数据库设计吧?那个我觉得设计一个表就可以了,没有那两个属性的就不用填写,为空就是的了。
如果这样的话,岂不是有很多冗余字段.
按照商品商家进行分类;
或者
一个xml字段就可以了
如果我的数据上千万的时候查询性能如何才能得到保障.
大家多给点意见啊.
考虑性能,请谨慎使用。
商品类型表
类型ID 类型名称
1 笔记本
2 台式机
3 手机
类型属性表
属性ID 类型ID 属性名称
1 1 品牌
2 1 产地
3 1 质量
4 2 价格
5 3 操作系统
商品表
商品ID 商品类型ID
1 1
2 2
3 2
4 3
商品属性值表
商品ID 属性ID 属性值
1 1 联想
1 2 上海
1 3 2KG
P.S: 居然不能从本地上传图片?这也太弱了吧?
可以上传图片啊,我试过了,编辑框上面有个上传图片的按钮.说实话,这表结构后期数据查询能让人疯掉.
那个插入图片ms只能选择网络上的,不能传本地的图片。我上面提供的这个表结构,你可以作为“生成动态表的依据”,不是需要100%全部动态的,比如你可以大部分共同属性都是固定字段,某些是动态的(比如所有商品都有名称/品牌/产地,这些都可以是产品那个表的固定字段),再加上做好缓存就可以了。否则你又要动态,又不愿意留空字段,哪有这么好的事情,你说呢?
这个功能我做过,就是用的xml字段和 HierarchyID 字段配合,xml字段可以建立索引的,所以搜索性能上没什么问题。