无限商品分类,无限商品属性的实现,跪求!!!

onepipo 2010-02-08 09:48:36
下面列举下几种不同的产品类型:
女装、鞋子、手机、游戏卡、化妆品等等
女装的属性有:颜色、尺码、腰围、胸围、价格、季节、面料、品牌、产地等等
鞋子的属性有:颜色、尺码、跟高、样式、品牌、季节、材料、价格、产地
手机的属性有:基本参数、产品外形、拍照功能、娱乐功能、颜色、尺寸、产地、价格、品牌、生产时间等
化妆品的属性:型号、材质、产地、出厂日期、保质期、品牌、价格、尺寸、规格、颜色等
看看,就这么几个分类,已经有那么多的属性。大家仔细看看,其实这些属性当中有几个属性是大家都有的,比如:颜色、尺码、价格、产地、品牌等。另外的几个都是私有的属性。
然后再看,很多属性其实数据是定死的,就是说可以把属性的值列举出来:
比如说
颜色:可以分:红色,白色,绿色等。
产地:浙江杭州、广东广州。
我们把这些统称为实例数据,当然相反,也有很多属性我们必须是要手动录入数据的。包括拍照功能、腰围、适合年龄范围等。
接下去,我们使用C# 的类来讲解具体的设计思路:
产品类别的类定义: public class Category{ public int m_id; //类别的ID public string m_name ; //类别名称 public string m_root; //类别的路径,->0->1->2-> public int m_parent; //父级的Id public int m_depth; //路径深度 }
类别属性类的定义: public class Attribute{ public int m_id; //属性的ID public int m_name ; //属性的名称 public string m_value; //属性值 public int m_type; //属性的类型,单行文本,选择框,多选框,多行文本等等。这里可以随便你设置, }
属性实例类的定义: public class Instance{ public int m_id; //属性实例的ID public string m_name; // 属性实例的名称 public string m_value; //属性实例值 public int m_attributeId; //属性ID }
最后我们需要定义一个产品类别与属性对应的类: public class CateAttribute{ public int m_id; //编号ID public int m_attributeId; //属性的ID public int m_cateId; //类别的ID }

数据库设计还能看的懂。
但是Model层的实现体类要怎么义,界面要怎么实现。类似于淘宝那样的。

哪位大爷给一个解呀,跪求呀!!!这里先给磕三个响头
...全文
196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
javc 2010-02-08
  • 打赏
  • 举报
回复
简单的来说 字典表有以下字段

zdid , zdmc(名称) , zdms(描述), zdlb(字典类别)
1 , 颜色 , "" , 1
2 , 尺码 , "", 1
3 , 产地, "", 1
4 , 尺码 , "", 2

产品结构表 依然是树结构
cpid, cpmc(产品名称),cpfid(产品父id) cpms(描述),cpzd(产品字典)
1 拖鞋 , 0 ,“”, 1,2 ,3
2 nike破拖鞋 , 1 ,"", 1,2,3

当然最好有个产品字典 类别表 我就不描述了
随风落梦 2010-02-08
  • 打赏
  • 举报
回复
递归,这样可以无限分级,类似于树型结构
feelnowt 2010-02-08
  • 打赏
  • 举报
回复
递归
goingshow 2010-02-08
  • 打赏
  • 举报
回复
用递归,无线级扩展
javc 2010-02-08
  • 打赏
  • 举报
回复
建立字典表
夺命胖子 2010-02-08
  • 打赏
  • 举报
回复
没注意看,,,双熊大哥的意思是属性和产品是多对多关系,

用一个表单独存它们的对应关系,

我的意思是直接将该类别对应属性用一个字符串字段存。。
夺命胖子 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 seesea125 的回复:]
不同产品的属性,放在一个表里去,比如
id 属性  所属类型
1  颜色  1
2  尺码  1
3  尺码  2
。。。。。。。。

然后有一父类型表

1  女装
2  鞋子

这样就可以了,既然属性是变化的,他就应该是放在表里,不应该是固定死的了
[/Quote]

对应楼上双熊...你可以用一个字段存它对应的属性ID
属性ID用逗号隔开,
增删除属性也方便
seesea125 2010-02-08
  • 打赏
  • 举报
回复
不同产品的属性,放在一个表里去,比如
id 属性 所属类型
1 颜色 1
2 尺码 1
3 尺码 2
。。。。。。。。

然后有一父类型表

1 女装
2 鞋子

这样就可以了,既然属性是变化的,他就应该是放在表里,不应该是固定死的了
criedshy 2010-02-08
  • 打赏
  • 举报
回复
哪里有无限分类了?

就是有你在数据库中建一个树级关系的表啊

至于那些属性的值都是固定的,你可以定义成枚举啊
readfuture 2010-02-08
  • 打赏
  • 举报
回复
d
凤凰涅檠 2010-02-08
  • 打赏
  • 举报
回复
无限分类没有问题,无限属性的话,我觉得那还不如直接一个描述字段来得实在
1dit 2010-02-08
  • 打赏
  • 举报
回复
OOP,ICO,MVC

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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