本人在设计数据库时遇到一个问题。基本情况:一级科目分三类,二级科目分若干,二级科目下的各条记录数据项各不相同。举例说明,一级科目中有支出,其二级科目有代建工程、土地出让金等,现在问题是代建工程的内容和土地出让金内容各不相同,请问如何设计数据库。

解决方案 »

  1.   

    将建立科目属性表,通过科目代码与具体数据表关联:
    科目表两种设计方式:
    1.
    科目表(科目代码 PK,科目名称,上级科目)
    优点:节省空间,容易扩展,如果二级科目再有子科目,也不需新建表,当科目级联比较多时比较好。
    缺点:查询时有点难度
    2.
    一级科目表(科目代码 PK,科目名称)
    二级科目表(二级科目代码 PK,二级科目名称,一级科目代码 FK)
    有点:结构清晰,查询较简单。
    缺点:如果科目级联增加,需要新增表,当科目级联比较多时需要关联较多表。
      

  2.   

    to hokor:回答挺积极的!!!
      

  3.   

    先谢两位高手了!科目属性表计划按hokor的方法一来实施。主要问题是下一步,看来我的问题还有点不清楚。
    支出科目中有
        代建工程(包含:项目名称、类型、施工单位、业主单位、合同价、第一次付款时间、付款金额。。)
        征地补偿(包含:项目名称、征用土地所在地、面积、项目主体。)
        拆迁补偿(包含:项目名称、征用范围、面积、。。)
      对这3个子科目,是建一张数据表,还是建三个数据表呢?
    再次恳请高手指导