我最近在开发过程中发现一个问题,有关sql数据库设计的,这个问题有点典型,可是我一直弄不明白。
这是一个关于自定义商品属性字段的问题。
我们在定义goods(商品)表的时候,我们已经定义了一些属性字段,同时,肯定有些属性需要用户自定义,这该怎么实现呢。

以下是我自己设计的数据表

如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
--商品的基本信息表
如何设计sql数据库,以实现商品自定义属性
CREATE TABLE [GOODS] (
如何设计sql数据库,以实现商品自定义属性    
[ID] [BIGINT] IDENTITY (11NOT NULL ,
如何设计sql数据库,以实现商品自定义属性    
[CLASS] [VARCHAR] NULL ,
如何设计sql数据库,以实现商品自定义属性    
[GOODSNAME] [VARCHAR] (50) COLLATE CHINESE_PRC_CI_AS NULL ,
如何设计sql数据库,以实现商品自定义属性    
[CONTENT] [TEXT] COLLATE CHINESE_PRC_CI_AS NULL ,
如何设计sql数据库,以实现商品自定义属性    
CONSTRAINT [PK_GOODS] PRIMARY KEY  CLUSTERED 
如何设计sql数据库,以实现商品自定义属性    (
如何设计sql数据库,以实现商品自定义属性        
[ID]
如何设计sql数据库,以实现商品自定义属性    )  
ON [PRIMARY] 
如何设计sql数据库,以实现商品自定义属性
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
如何设计sql数据库,以实现商品自定义属性
GO
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
--商品扩展属性
如何设计sql数据库,以实现商品自定义属性
CREATE TABLE [GOODSEXTPROPERTY] (
如何设计sql数据库,以实现商品自定义属性    
[ID] [BIGINT] IDENTITY (11NOT NULL ,
如何设计sql数据库,以实现商品自定义属性    
[CLASS] [VARCHAR] NULL ,--此CLASS同[GOODS]表CLASS一致,表示同一分类,每一分类下的扩展属性可能会不同
如何设计sql数据库,以实现商品自定义属性
    [TYPE] [VARCHAR] (50) COLLATE CHINESE_PRC_CI_AS NULL ,
如何设计sql数据库,以实现商品自定义属性    
[TEXT] [VARCHAR] (50) COLLATE CHINESE_PRC_CI_AS NULL ,
如何设计sql数据库,以实现商品自定义属性    
[REMARK] [VARCHAR] (500) COLLATE CHINESE_PRC_CI_AS NULL ,
如何设计sql数据库,以实现商品自定义属性    
CONSTRAINT [PK_GOODSEXTPROPERTY] PRIMARY KEY  CLUSTERED 
如何设计sql数据库,以实现商品自定义属性    (
如何设计sql数据库,以实现商品自定义属性        
[ID]
如何设计sql数据库,以实现商品自定义属性    )  
ON [PRIMARY] 
如何设计sql数据库,以实现商品自定义属性
ON [PRIMARY]
如何设计sql数据库,以实现商品自定义属性
GO
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
--商品扩展属性对应的值
如何设计sql数据库,以实现商品自定义属性
CREATE TABLE [GOODSEXTPROPERTYVALUE] (
如何设计sql数据库,以实现商品自定义属性    
[ID] [BIGINT] IDENTITY (11NOT NULL ,
如何设计sql数据库,以实现商品自定义属性    
[GOODSID] [BIGINT] NULL ,
如何设计sql数据库,以实现商品自定义属性    
[PROPERTYID] [BIGINT] NULL ,
如何设计sql数据库,以实现商品自定义属性    
[VALUES] [VARCHAR] (5000) COLLATE CHINESE_PRC_CI_AS NULL ,
如何设计sql数据库,以实现商品自定义属性    
CONSTRAINT [PK_GOODSEXTPROPERTYVALUE] PRIMARY KEY  CLUSTERED 
如何设计sql数据库,以实现商品自定义属性    (
如何设计sql数据库,以实现商品自定义属性        
[ID]
如何设计sql数据库,以实现商品自定义属性    )  
ON [PRIMARY] 
如何设计sql数据库,以实现商品自定义属性
ON [PRIMARY]
如何设计sql数据库,以实现商品自定义属性
GO
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODS] VALUES('001','电脑','我是描述')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODS] VALUES('001','MP3','我是描述')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODS] VALUES('002','内衣','我是描述')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODS] VALUES('003','袜子','我是描述')
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
GO
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTY] VALUES('001','INT','PRICE','价格')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTY] VALUES('001','INT','MEMERY','内存容量')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTY] VALUES('002','INT','PRICE','价格')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTY] VALUES('002','VARCHAR','COLOR','颜色')
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
GO
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTYVALUE] VALUES(1,1,'3000')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTYVALUE] VALUES(1,2,'512')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTYVALUE] VALUES(2,2,'256')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTYVALUE] VALUES(3,3,'100')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTYVALUE] VALUES(3,4,'RED')
如何设计sql数据库,以实现商品自定义属性
INSERT INTO [GOODSEXTPROPERTYVALUE] VALUES(4,4,'RED')
如何设计sql数据库,以实现商品自定义属性
GO
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
如何设计sql数据库,以实现商品自定义属性
--现在的问题是,如何用SQL语句 SELECT一条,SELECT多条 ,UPDATE一条商品
如何设计sql数据库,以实现商品自定义属性--
以上是我自己想向中的数据库设计,不知可行不可行,您能提供解决方案么
如何设计sql数据库,以实现商品自定义属性

 

相关文章: