| 发表于:2007-10-31 22:07:38 楼主 |
表: if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[sysclass]') and objectproperty(id, n'isusertable') = 1) drop table [dbo].[sysclass] go if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[product]') and objectproperty(id, n'isusertable') = 1) drop table [dbo].[product] go if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[sysclassattribute]') and objectproperty(id, n'isusertable') = 1) drop table [dbo].[sysclassattribute] go if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[sysclassattributevalue]') and objectproperty(id, n'isusertable') = 1) drop table [dbo].[sysclassattributevalue] go create table [dbo].[sysclass] ( /*这个表是系统产品分类*/ [id] [int] not null , [classname] [nvarchar] (100) collate chinese_prc_ci_as null , ) on [primary] go create table [dbo].[product] ( /*这个表是存储产品*/ [id] [int] identity (1, 1) not null , [productname] [nvarchar] (100) collate chinese_prc_ci_as null , [sysclassid] [int] null , ) on [primary] go create table [dbo].[sysclassattribute] ( /*这个表是存储产品的附加属性的项目*/ [id] [int] not null , [en_attributename] [nvarchar] (100) collate chinese_prc_ci_as null , [gb_attributename1] [nvarchar] (100) collate chinese_prc_ci_as null , [sysclassid] [int] null ) on [primary] go create table [dbo].[sysclassattributevalue] ( /*这个表是存储产品的附加属性的值*/ [id] [int] null , [productid] [int] null , [sysclassattributeid] [int] null , [sysclassattributestr] [nvarchar] (50) collate chinese_prc_ci_as null ) on [primary] go 案例: 1.产品:花朵童装 (product表里一条记录) 分类:服装> > 童装 (sysclass表里一条记录) 价格:95元 童装下面还有分类属性:面料,size,季节 (sysclassattribute表里面三条记录) 产品:花朵童装 的三个属性的值是:面料=20%棉 50%毛;size=xx;季节=冬; (sysclassattributevalue表里面三条记录) 2.产品:红孩子童装 (product表里一条记录) 分类:服装> > 童装 (sysclass表里一条记录) 价格:50元 童装下面还有分类属性:面料,size,季节 (sysclassattribute表里面三条记录) 产品:红孩子童装 的三个属性的值是:面料=20%棉 75%毛;size=;季节=冬; (sysclassattributevalue表里面两条记录) 用户查询对比的结果是: 产品名 分类 价格 面料 size 季节 花朵童装 童装 95元 20%棉 50%毛 xx 冬 红孩子童装 童装 50元 20%棉 75%毛 冬 如果用最优化的查询得到用户需要的查询结果! |
|
|
|
|