在数据库设计中,有一个大类,这个类又分为许多小类,而这些小类的属性有的又不一样,数据库中怎么设计这个类的表?是建一个大类的表,然后有一个小类字段还是根据每个小类的字段建小类的表?可以把属性序列化json或这XML到数据吗

解决方案 »

  1.   

    在RDBMS中可以这样设计:
    create table dd_category (
      category int, -- 大类
      class int, -- 小类
      descript varchar(128) -- 类别说明
    )
    create table class_attribs (
      class int, -- 类别
      attrib int, -- 属性标识
      value varchar(128) -- 属性值
    )
      

  2.   

    ex.
    create table classes (id int primary key, name varchar(32))
    go
    insert into classes values (151, '2009-1')
    insert into classes values (152, '2009-2')
    insert into classes values (153, '2009-3')
    insert into classes values (141, '2008-1')
    insert into classes values (142, '2008-2')
    insert into classes values (143, '2008-3')
    insert into classes values (131, '2007-1')
    insert into classes values (132, '2007-2')
    insert into classes values (133, '2007-3')
    -- ...
    go
    create table students (id varchar(16), classid int, name varchar(32))
    go
    insert into students values (1330101,133,'张三')
    insert into students values (1330102,133,'李四')
    insert into students values (1330103,133,'王五')
    insert into students values (1330104,133,'赵六')
    -- ...
    go