类似于淘宝商品分类设计问题!

你猜我猜不猜拉 2009-04-22 11:57:25
我现在要做一个 类似于 淘宝的一个网站 展现不同类型的产品,比如说 类型一,类型二 这是大类别,但是每个每个大类别又要支持无限扩展小类别,比如说 类型一下有A1,A2,类型二下有B1,B2,但是每个类别又具有不同的属性,和不同个数的属性,不如说A1具有:像素,样式这两个属性,而B1具备 颜色,大小,厚度三个属性
他的属性非常灵活 我应该怎么来设计数据库呢 因为那么多分类,不可以能每一个分类都具有同样个数和同样的属性 更不可能对应每一商品类别对应建一个属性表
说简单点就是
栏目下的每个类别都有不同的属性,例如衣服与电脑具有不同的属性,不可能将这些属性放入一个表进行管理,应该怎样设计才能合理?
而且有些属性值还是那种下拉框的形式 比如说颜色 有红色,绿色。。等等,而不是随便写的

不知道大家明白不明白我的意思!
希望高手能说消息点!谢谢啦!
...全文
2214 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
阳光游子 2009-08-17
  • 打赏
  • 举报
回复
m
mecho 2009-06-13
  • 打赏
  • 举报
回复
我也顶!

看了一下,我看我还是用那种最原始的吧!虽然效率可能很低!
  • 打赏
  • 举报
回复
喔 算了 谢谢您
hy_lihuan 2009-05-21
  • 打赏
  • 举报
回复
lz我不能使用qq,lz还有问题这里说好了
john3747cn 2009-05-21
  • 打赏
  • 举报
回复
学习中
hy_lihuan 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 woshizhangxinhan 的回复:]
hy_lihuan 这么多人的回答 您算是最懂我意思的人了 呵呵
[/Quote]
哈哈,谢谢夸奖;主要是你觉得这样能够解决你的问题吗?
dreamagainzwj 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 woshizhangxinhan 的回复:]
dreamagainzwj 您做的那个 是提前把每个类别的属性都写的吗?不能动态添加吗?
[/Quote]

是的 因为就20多种类别就自己写了

  • 打赏
  • 举报
回复
hy_lihuan 这么多人的回答 您算是最懂我意思的人了 呵呵
  • 打赏
  • 举报
回复
dreamagainzwj 您做的那个 是提前把每个类别的属性都写的吗?不能动态添加吗?
hy_lihuan 2009-05-21
  • 打赏
  • 举报
回复
其实就是自定义产品属性拉;
最简单通用的方法就是上面说的:每一种类别的产品会对应一系列的属性(产品和属性的对应应该是一张表)(属性单独一张表来进行维护设置)。
每一个产品的一个属性对应一个值(属性值单独一张表)
这样的结构基本符合要求了,难点就是属性表的设计,里面可能会涉及到ui的表现使用什么控件,属性的值是否有限的(比如:大中小三种);
缺点就是在对产品属性进行查找的时候,性能比较差;而且这样的设计也没有太多的改善空间;
makun0624 2009-05-21
  • 打赏
  • 举报
回复
学习`关注`UP
dreamagainzwj 2009-05-21
  • 打赏
  • 举报
回复
补充 我以前做过一个类似的东西,是一个化工网,虽然没taobao那么多的类别,但是也有点类似 我们是按一个大类的产品设计一个属性表,比如笔记本一个大类 鞋子一个大类 这些的参数都应该一样,尽量考虑周全的属性.
dreamagainzwj 2009-05-21
  • 打赏
  • 举报
回复
看你的聊天内容 繁琐的应该是 具体的添加商品页面的控件自动生成的问题,这样真的只能用你说的那种老套的办法,必须区分属性的类型 时间或者下来选择等等 数据库的设计是小问题..我也没有好的地方 等高手来解决
不慕沙卡拉卡 2009-05-21
  • 打赏
  • 举报
回复
我正好刚遇到和楼主一样的问题,能把你的解决方案和我分享一下吗?
springbell 2009-05-21
  • 打赏
  • 举报
回复
JasonZhou 2009-05-21
  • 打赏
  • 举报
回复
建一个分类表,再建多个不同的属性表,然后把分类指定到属性表上,
我想你项目里,分类的属性不可能是无限的吧,楼主别老想着捷径
zidan_cd 2009-04-29
  • 打赏
  • 举报
回复
高级群招人 .net 和java 高手请加群:78514712 群名:编程技术交流群。。。。。。。
  • 打赏
  • 举报
回复
da母 雞' 19:06:27
我现在建立了三个表

da母 雞' 19:06:45
一个是 ProductSort 商品的类别
da母 雞' 19:06:54
一个是 Property 商品的属性
da母 雞' 19:07:12
一个是 Value 属性的值
da母 雞' 19:07:15
明白?
iceblue 19:07:19
明白
da母 雞' 19:07:48
第一个问题
我既然这样设计,是不是可以支持后台自己添加
iceblue 19:07:58
可以
da母 雞' 19:08:01
那我添加的内容存什么地方呢
da母 雞' 19:08:04
怎么存
iceblue 19:08:20
商品信息?
iceblue 19:08:37
属性值表呀
da母 雞' 19:08:39
比如说 商品:娃子

属性:颜色,大小
da母 雞' 19:08:58
Value 是指属性的值
da母 雞' 19:09:09
颜色只能在红色跟白色之间选
iceblue 19:09:16
明白了
iceblue 19:10:17
再加一个表吧
da母 雞' 19:10:39
于是我在表里这么存
ProductSort 商品的类别

1 娃子
Property 商品的属性
1 颜色 1
2 大小 1
Value 属性的值(对应的是Property选择值)
1 红色
2 绿色




da母 雞' 19:10:57
于是我在表里这么存
ProductSort 商品的类别

1 娃子
Property 商品的属性
1 颜色 1
2 大小 1
Value 属性的值(对应的是Property选择值)
1 红色 1
2 绿色 1
iceblue 19:12:03
Value表叫选项表更好一些
iceblue 19:12:38
真正的Value表是存录入的数据的
da母 雞' 19:12:59
ProductSort 商品的类别
ProductID ProductName
1 娃子
Property 商品的属性
PropertyID PropertyName ProductID
1 颜色 1
2 大小 1
Item 属性的值(对应的是Property选择值)
ItemID ItemName Property ID
1 红色 1
2 绿色 1
iceblue 19:13:09
类别表、属性表、属性选项表、属性值表
iceblue 19:13:13
对头
da母 雞' 19:13:32
但是
da母 雞' 19:13:40
属性不一定是下拉框啊
da母 雞' 19:13:44
还有复选框啊
da母 雞' 19:13:49
还有 单选按钮啊
da母 雞' 19:13:54
- -
iceblue 19:14:22
在属性表价格属性类型字段
da母 雞' 19:14:42
好复杂 感觉
iceblue 19:14:43
记录是数字、单选、多选、还是什么
iceblue 19:14:48
恩,确实很复杂
da母 雞' 19:15:30
我觉得想要做成动态的好难
da母 雞' 19:15:36
比如说你有个时间属性
da母 雞' 19:15:37
对吧
da母 雞' 19:15:47
那我动态出来表让别人填的时候
da母 雞' 19:15:53
我不知道那一个属性时间
da母 雞' 19:15:58
所以就没法判断
da母 雞' 19:16:12
没法判断就没法给那加一个选择时间的控件
da母 雞' 19:16:15
反正很复杂
iceblue 19:16:18
恩,这是一个难点
iceblue 19:17:24
只能在后台动态加载控件
da母 雞' 19:17:36
什么意思
iceblue 19:17:46
根据类型不同,加载不同的控件
da母 雞' 19:17:56
- -
iceblue 19:18:01
就是不能在页面里直接拖控件上去了
da母 雞' 19:18:40
判断 类型在数据库里的字段类型
da母 雞' 19:18:50
如果是int 那只能输int
da母 雞' 19:18:52
0 0

da母 雞' 19:19:00
咋这么复杂啊
da母 雞' 19:19:08
如果是datatime
da母 雞' 19:19:10
...
  • 打赏
  • 举报
回复
da母 雞' 19:06:27
我现在建立了三个表

da母 雞' 19:06:45
一个是 ProductSort 商品的类别
da母 雞' 19:06:54
一个是 Property 商品的属性
da母 雞' 19:07:12
一个是 Value 属性的值
da母 雞' 19:07:15
明白?
iceblue 19:07:19
明白
da母 雞' 19:07:48
第一个问题
我既然这样设计,是不是可以支持后台自己添加
iceblue 19:07:58
可以
da母 雞' 19:08:01
那我添加的内容存什么地方呢
da母 雞' 19:08:04
怎么存
iceblue 19:08:20
商品信息?
iceblue 19:08:37
属性值表呀
da母 雞' 19:08:39
比如说 商品:娃子

属性:颜色,大小
da母 雞' 19:08:58
Value 是指属性的值
da母 雞' 19:09:09
颜色只能在红色跟白色之间选
iceblue 19:09:16
明白了
iceblue 19:10:17
再加一个表吧
da母 雞' 19:10:39
于是我在表里这么存
ProductSort 商品的类别

1 娃子
Property 商品的属性
1 颜色 1
2 大小 1
Value 属性的值(对应的是Property选择值)
1 红色
2 绿色




da母 雞' 19:10:57
于是我在表里这么存
ProductSort 商品的类别

1 娃子
Property 商品的属性
1 颜色 1
2 大小 1
Value 属性的值(对应的是Property选择值)
1 红色 1
2 绿色 1
iceblue 19:12:03
Value表叫选项表更好一些
iceblue 19:12:38
真正的Value表是存录入的数据的
da母 雞' 19:12:59
ProductSort 商品的类别
ProductID ProductName
1 娃子
Property 商品的属性
PropertyID PropertyName ProductID
1 颜色 1
2 大小 1
Item 属性的值(对应的是Property选择值)
ItemID ItemName Property ID
1 红色 1
2 绿色 1
iceblue 19:13:09
类别表、属性表、属性选项表、属性值表
iceblue 19:13:13
对头
da母 雞' 19:13:32
但是
da母 雞' 19:13:40
属性不一定是下拉框啊
da母 雞' 19:13:44
还有复选框啊
da母 雞' 19:13:49
还有 单选按钮啊
da母 雞' 19:13:54
- -
iceblue 19:14:22
在属性表价格属性类型字段
da母 雞' 19:14:42
好复杂 感觉
iceblue 19:14:43
记录是数字、单选、多选、还是什么
iceblue 19:14:48
恩,确实很复杂
da母 雞' 19:15:30
我觉得想要做成动态的好难
da母 雞' 19:15:36
比如说你有个时间属性
da母 雞' 19:15:37
对吧
da母 雞' 19:15:47
那我动态出来表让别人填的时候
da母 雞' 19:15:53
我不知道那一个属性时间
da母 雞' 19:15:58
所以就没法判断
da母 雞' 19:16:12
没法判断就没法给那加一个选择时间的控件
da母 雞' 19:16:15
反正很复杂
iceblue 19:16:18
恩,这是一个难点
da母 雞' 19:16:27
我说这么模糊你也能明白阿
da母 雞' 19:16:29
郁闷了
da母 雞' 19:16:31
你这么聪明
iceblue 19:16:34
你很会抓重点
iceblue 19:17:24
只能在后台动态加载控件
da母 雞' 19:17:36
什么意思
iceblue 19:17:46
根据类型不同,加载不同的控件
da母 雞' 19:17:56
- -
iceblue 19:18:01
就是不能在页面里直接拖控件上去了
da母 雞' 19:18:40
判断 类型在数据库里的字段类型
da母 雞' 19:18:50
如果是int 那只能输int
da母 雞' 19:18:52
0 0

da母 雞' 19:19:00
咋这么复杂啊
da母 雞' 19:19:08
如果是datatime
da母 雞' 19:19:10
...
iceblue 19:19:25
嗯,很复杂
zzxap 2009-04-22
  • 打赏
  • 举报
回复
ID NAME TYPE
1 书 1
2 电脑 2

每个类型的商品设计一个表,根据type读取不同的表来显示商品的相关数据,

id pid name 颜色 配件1


id pid name 配件0 配件1




加载更多回复(14)

62,050

社区成员

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

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

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

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