类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
帮朋友做一个网站,在设计数据库时就出现问题了,公司是做电脑产品代理的,有服务器,台式机,笔记本,打印机,投影仪等,要把这些产品信息放到数据库,可是每一类产品的字段都差距很大,比如可以把服务器,台式机,笔记本这三类产品归为一大类,但别的只能一类对应一个表了,这样设计数据库感觉操作和维护起来多比较麻烦,因为每类产品的相关信息很多,就是字段很多!!不知那位高人有好的思路给指点一下,谢谢!!
网友回答:
再详细一点说明,数据库需要包含的信息。
不要一类放一个表~~~~所有产品都放到一个表里,再建立一个分类字段~~~~
你将公有信息放到分类字段,而其他信息放到产品字段,不同分类,同一个字段表示的信息的含义也不同~~~~
只为有检索需求的部分信息设计字段,其余使用大文本存储.在需要检索时提供全文检索功能.这样表横向规模不是很大,把大部分产品信息设计进去不成问题
按照楼上二位的说法都可以实现的,不过,从你的说明来看,你可能还是不太清楚需求,从这方面考虑,最好应用yonghengdizhen(等季节一过,繁花就凋落)的方案,这样可以避免太多的更改
楼上的懒猫说的对
其实建一个表就可以了
把所有共有的属性全部设计成字段
而对分类单独设计一个字段
所有的查询都在数据库里按数值查询
应该尽量避免直接查询中文数据
这样会大大提高查询效率
建一个分类表,,建一个分类属性表,,将这两个表以ID字段联接起来,然后再建一个产品表,,将产品表,,产品表中只包含产品名,分类等字段这样,通过三个表就能完成,,
只是要浪费一点数据库空间,因为如果几个大类的属性字段不是差不多数量 的话,那么就会浪费一些空间,因为我们把每个大类的属性字段都放在一个分类属性表里了,,
关于分类属性表的字段名,可以以 FIELD1 ~ FIELDN 命名,但这样的话,对写程序时不太方便,,
但是还可以通过一种方式来解决,那就是定义字符串常量来保存上面那种难记的字段名。。
可以参考Foodmart 2000的数据库设计。
Foodmart 2000的获取途径
安装Sql Server 2000 Analysis Service,安装示例,在安装后的示例文件夹里有。
类别放一个表
typeid typename
信息放一个表
id typeid info
用一个基本表保存产品信息,用视图来规定某种产品的特有信息,这样结构比较稳定,相应的代价就是冗余太大。