分类网站的数据库设计

atmo 2010-12-21 05:52:06
想做一个分类信息网,但是数据库设计是个大问题

比如说 有人卖车 有人卖房

卖车的时候发布的是车的参数,比如价格 颜色 排量 型号等等
卖房的参数又不相同,比如 位置 大小 结构 装修程度等

而这些分类成百上千,如何设计一个扩展性比较强的数据库,并且能把维护量降到最低?

我之前用过一个cms,他的设计的概念是利用自定义字段进行扩展, 比如

id 参数名称 参数英文名称 参数类型 属于类别
100 车型 carType 字符 车
200 户型大小 houseSize 浮点 房

记录用户发布内容表 结构

1 内容 参数id

××× 100

这样就可以通过这些表来查询,这是个例子 实际情况可能为了一条信息的显示,同时查询十几个表,我觉得是不是效率低了?

另外如果一个类别建立一个表,是不是太麻烦了?

各位大虾给想个办法,或者通过您的经验来告诉我,哪些方法比较好?如何设计一个比较合理的分类信息数据库
...全文
198 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
atmo 2010-12-22
  • 打赏
  • 举报
回复
各位的回答我看了一下,基本是采用 增加额外属性 表来实现功能,有这么样的一个思路,各位看下是否行得通?


分类表
N级分类
分类ID 分类名称 对应info表ID
1 车
2 房

参数信息

id info1 info2 info3 infoN 所属分类
1 大众 蓝色 92年 2000公里 1
2 100平米 三室两厅 朝阳 ... 2
3 。。。。。。。。。。。。。。。
N 。。。。。。。。。。。。。。。

所有的属性都在前台做出来,比如用数组等等
最终的效果类似
select info1 as 车型,info2 as 颜色,info3 as 购买年份
select info1 as 大小,info2 as 户型,info3 as 位置

这样做可以预知的两个问题
1,不好扩展,如果有一个类别参数有100个,难道要建立 100个列?
2,资源浪费 不可能每个分类的参数个数都相同,肯定有空值

还是觉得前面各位的建议好,继续征求建议
dawugui 2010-12-21
  • 打赏
  • 举报
回复
大致为:
商品表(A)
aid name
1 车
2 房
...

产品表(B)
bid aid name
1 1 大众
2 1 标志
3 1 ...
4 2 三房两厅
5 2 四房三厅

属性表(C)
cid bid type size
1 1 颜色 黑
2 1 价格 100000
3 1 排量 1.6L
4 1 型号 ...
5 1 颜色 红
6 1 价格 120000
...
10 4 位置 南北朝向
11 4 大小 90平方米
12 4 结构 框架式
...
haitao 2010-12-21
  • 打赏
  • 举报
回复
参数,最好也能树形
每个类型有自己的参数模板树
参数id,类别id,参数名称,父参数id,缺省值,参数其它属性。。。。。。。
haitao 2010-12-21
  • 打赏
  • 举报
回复
分类,最好是一个树形的
类别id,类别名称,父类id,类别其它属性。。。。。。。

参数,最好也能树形
每个类型有自己的参数模板树
参数id,参数名称,父参数id,缺省值,参数其它属性。。。。。。。

物品的实际参数:
物品id,参数id,参数实际值
(如果实际值与缺省值相同的,可以不用存储)
billpu 2010-12-21
  • 打赏
  • 举报
回复
表3是限制比如文本类型 字段长度等 方便做限制
表4 是用户提交的信息
恩 差不多
王向飞 2010-12-21
  • 打赏
  • 举报
回复
类目表
商品表
商品特征
商品特征值
商品基本属性
商品个性属性

只能说这么多了。。
billpu 2010-12-21
  • 打赏
  • 举报
回复
自定义字段毕竟麻烦
表1 设计一个类别表
纵向是类别序列 比如类别一(车子),类别二(房子)
表2 设计一个参数类别对应表,对应关系为表1
比如参数1(车型)属于类别一,参数2(车子颜色)属于类别一,参数3(房子大小)属于类别二
表3 设计一个具体信息对应参数表
你可以在里面设置大小字段,类型字段(其实也就是程序控制)

比如用户发布车子的信息
你先去找表1的车子然后连接表2所有类别是车子的类型,然后由程序分别输出给用户记录,信息记录到3

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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