介绍
1.产品基础属性:
一开始什么属性都没有,需要什么属性就添加什么属性,并且能对属性进行编辑。比如加了一个叫“品牌”的属性,那就能对尺寸属性进行编辑,添加上‘惠普’、‘联想’、‘戴尔’等多个内容。2.产品模板:
一开始显示所有产品基础属性(‘名称’属性就是一个文本框、‘品牌’属性就是一个下拉列表,内容如上)。在每个属性边上 有复选框,不需要的就给他选中。最后保存为一个模板并重命名存起来。模板内只含有需要的基础属性。3.添加产品:
选择产品类,调用绑定的产品模板,填写内容,添加完成。问题:
1。如何动态的把属性以及属性的内容等存进数据库(表的设计结构).(100分)
2。如何把所有基础属性以及属性的内容读出来显示到页面上(50分)
3。如何把没有被选中的属性及内容保存成模板(50分)ps:权限不够只能100分,解决完另开贴散分。

解决方案 »

  1.   

    这个就看你怎么建表了哈,见一个产品表,字段分别为:产品ID,品牌id,然后见一个品牌表,字段为:品牌id,名称。把产品表里面的“品牌id”和品牌表里面的“品牌id"设成对应关系,可以把品牌表绑定到下拉列表,到时候添加就只需把选择列的id值写到产品“品牌id”里面,还需什么属性,如此类推
      

  2.   

    产品属性我现在是这样做的产品表多两个字段ProAttName(商品属性名),ProAttValue(产品属性值)
    添加一个属性用 | 分开,对应的属性值也用 | 分开  如果属性值又有多个值  可以把属性值用 ,分开如:
    proattname
    衣服尺寸|衣服颜色ProAttValue
    大,中,小|红,白蓝
      

  3.   

    这里可以参考一下,难度还是比较大的..http://my.open.taobao.com/apidoc/index.htm#categoryId:2-dataStructId:98
    http://open.taobao.com/api_tool/props/
      

  4.   

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[sys_table](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [biao] [nvarchar](50) NULL,
    [realName] [nvarchar](50) NULL,
    [title] [nvarchar](250) NULL,
    [keywords] [nvarchar](250) NULL,
    [description] [nvarchar](250) NULL,
    [template] [nvarchar](50) NULL,
    [createTime] [datetime] NOT NULL CONSTRAINT [DF_sys_table_createTime]  DEFAULT (getdate()),
     CONSTRAINT [PK_sys_table] PRIMARY KEY CLUSTERED 
    (
    [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    /****** 对象:  Table [dbo].[sys_field]    脚本日期: 10/11/2010 14:30:23 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[sys_field](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [tid] [int] NOT NULL,
    [name] [nvarchar](50) NULL,
    [realName] [nvarchar](50) NULL,
    [orderId] [int] NOT NULL,
    [isSearch] [bit] NOT NULL,
    [isSort] [bit] NOT NULL,
    [isNull] [bit] NOT NULL,
    [size] [int] NULL CONSTRAINT [DF_sys_field_size]  DEFAULT ((50)),
    [dbType] [int] NULL,
    [formType] [int] NULL,
    [verify] [nvarchar](50) NULL,
    [defaultValue] [nvarchar](50) NULL,
    [sql] [nvarchar](250) NULL,
    [listDisplay] [bit] NULL,
    [EditDisplay] [bit] NULL
    ) ON [PRIMARY]
    GO
      

  5.   

    建立子表例如主表添加类型 电脑。添加属性就加在子表里面
    子表记录 类型ID,字段名称,字段类型(文本,复选框,单选框),字段显示值。然后在保存产品数据的表添加字段 可以用子表的ID+标识来表示该类型的值。或者用分隔符来标识子表ID和选择的值,这样就不需要添加多余的字段。
    -------------------------------------------------------------显示的时候,循环子表显示全部的属性。
     
      

  6.   


    Yes ,你们老大说的很对呀,可就苦了手下人啦。
      

  7.   

    想到一种办法,不知道是否可行
    一张表,3个字段,
    【1】自动增长
    【2】属性名字[Ps:属性名随意,比如:电视机,空调,12(kg),30寸,红色]
    【3】属性ID[Ps:ID按照规律命名,比如:A0001,A0002,B0001,C0001,D0001]那么
    一台红色30寸重12kg的电视机就是:A0001_B0001_C0001_D0001 来标识
    一台红色30寸重12kg的空调就是:A0002_B0001_C0001_D0001 来标识这样来组合吧!其实按照类似的排列组合也行。
    我这只是一种思路。
      

  8.   

    ALTER   TABLE   [tb_Name]   ADD   [列名]   VARCHAR(20)   NULL
      

  9.   

    比较麻烦,
    1可以用元数据实现,
    2或者用保存XML字段的方式。
      

  10.   

    主要工作量是要实现一个动态对象的查询等操作的实现。
    要写不少代码。
    你可以参考下MS的crab项目。