论坛首页 编程语言技术论坛

关于复杂参数的数据库设计

浏览 3022 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-06-28  

最近接触到IT类的网站的数据库设计,类似PCPOP.COM的。我对这个刚接触不久,对数据库的设计不是很懂。

IT的产品的库分很多产品,比如:笔记本电脑,数码相机,手机等等,

各个产品有不同的品牌,不同的类型,各种类型的产品又有很多不同的参数,比如:
笔记本电脑的参数:重量,尺寸,预装系统等等
数码相机的参数: 重量,像素,相机类型等等
手机的参数: 屏幕尺寸,通话时间等等

各类型的产品参数有相同的也有很多不同的。

产品分类就不谈了,主要先考虑产品本身。

目前我的数据模型是这样设计的:

product表(产品)
ID           CATEGORY_ID            NAME
1                      2                      NIKON D60
2                      3                      APPLE IPHONE
3                      1                      IBM T41

class Product < ActiveRecord::Base   
  belongs_to :category(分类)
  has_many :parameters  
  ...   
end 



parameter表(参数)
ID                PRODUCT_ID                NAME
1                          2                          手机制式
2                          1                          相机类型
3                          3                          预装系统
4                          2                          通话时间

class Parameter < ActiveRecord::Base   
  belongs_to :product
  has_many :values
  ...   
end 



value表(值)
ID                 PARAMETER_ID                 NAME
1                             1                             GSM
2                             2                             单反
3                             3                             windows XP
4                             1                              260分钟

class Value < ActiveRecord::Base   
  belongs_to :parameter
  ...   
end 



想听听大家的看法,数据库这样设计行吗?或者你有更好的方法?请大家指教,谢谢!

 

   发表时间:2008-06-28  
sorry 排版有点乱
0 请登录后投票
   发表时间:2008-06-30  
数据库设计 要放到真实场景中.

我对你所处的场景不清楚.

这样的问题.有很多
性能
排序
复杂度

我建意, 把差关键字段, 放到 products 方便性能和排序, 再建一张叫 扩展字段表.有需要再读
0 请登录后投票
   发表时间:2008-06-30  
谢谢open2ye,你的意思是单表继承吗?我把所有参数放在一个表里,是为了查询,读取更方便。(想法对吗?)
所处的场景应该和豆瓣类似,只不过书 电影 音乐 被改变成数码产品,user可以添加产品。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics