主表 课题间的关系 课题号 课题名 课题间存在的关系 1001课题的关联课题
1001 abc 1001 1002 1001 1002
1002 cdg 1001 1005 ⇒ 1001 1005
1003 dfa 1006 1002 1001 1006
1004 her 1006 1003 1001 1003
1005 opo
1006 wer 课题主表已经确定,想创建一个课题间关联的关系表,来表达课题间的联系。例如:想知道课题号为1001课题跟那些课题联系,可以通过课题主表和课题间关联的关系表,查询得到课题号为1001课题所有相关课题。这样的课题间关联的关系表的表结构如何设计呢?

解决方案 »

  1.   

    主表 课题号 课题名
    1001 abc
    1002 cdg
    1003 dfa
    1004 her
    1005 opo
    1006 wer
    --------------
    课题间存在的关系
    1001 1002
    1001 1005
    1006 1002
    1006 1003
    --------------

    1001课题的关联课题
    1001 1002
    1001 1005
    1001 1006
    1001 1003
    --------------
    课题主表已经确定,想创建一个课题间关联的关系表,来表达课题间的联系。例如:想知道课题号为1001课题跟那些课题联系,可以通过课题主表和课题间关联的关系表,查询得到课题号为1001课题所有相关课题。这样的课题间关联的关系表的表结构如何设计呢?
      

  2.   

    这个是一个BOM结构 楼主可以去查这个方面的资料 看看高手都是怎么设计的 
    设计不好的话不好查询的
      

  3.   

      采用计算机辅助企业生产管理,首先要使计算机能够读出企业所制造的产品构成和所有要涉及的物料,为了便于计算机识别,必须把用图示表达的产品结构转化成某种数据格式,这种以数据格式来描述产品结构的文件就是物料清单,即是BOM
      

  4.   


    原来的课题关系就是用图表示的,因为课题太多,连线成了蜘蛛网,现在想放在数据库里进行管理。
    麻烦 TONY哥 帮下忙
      

  5.   

    建议:
    使用三张表。前两张是你当前有的。分别为a、b。第三张存放关系。
    可以做如此假设:任何两门课程之间都可能存在关系。那么假设存在n门课程,则可能的关系是(n-1)*(n-1)。那么我们认为它们之间的关系构成了一个图或是矩阵(两者没有本质上的区别)。在此我们选择矩阵,并把这个关系构成的矩阵看作为0-1矩阵,这时,关系,就变成了了矩阵相应元素的值。如果两门课程之间存在相应的关系,那么认为它们对应的元素为1,否则为0。
    如下所示:
    1 2 3 4
    1 0 1 1 0
    2 1 0 0 1
    3 1 0 0 0
    4 0 1 0 0以上可知,课程1、2、3、4之间的关系,12,13,24,之间有关系,那么我们可以得知,这个矩阵实际上是半角矩阵。课程之间的关系,也就变成了矩阵的存储问题。这个可用的方法就比较多了。但是,作为关系表来说。同样使用关系存放比较合理。一是课程数目不多,比如100门课程,那么存放的话,在最大可能下,也不到10000条(100-1*100-1),如果使用半角矩阵,也就只有一半的记录需要存放,检索上效率应该不成问题;二是课程之间关系的问题,这个我觉得在使用这个方法存储的话,也不用考虑的,原因和第一点一样。在使用以上结构中,具体操作时,可以使用如下访法。
    a表
    课题号 课题名 
    1001 abc 
    1002 cdg 
    1003 dfa 
    1004 her 
    1005 opo 
    1006 wer 
    b表课题间存在的关系 
    1001 1002 
    1001 1005 
    1006 1002 
    1006 1003 那么我们使用0-1矩阵存放关系的表,认为是c表,它的存在是明确表明两门课程关的关系,通过它,可以检索b表,获取更详细的课题关系。
    c表
    课题1 课题2 是否相关
    1001 1002 1
    1001 1003 1
    1001 1004 0
    1001 1005 1
    1001 1006 1
    ..........................
    当b表更新时,比如,1001和1007之间有关系,则我们认为,和1001有关系的课程,那么现在都和1007有关系,做如下操作:先搜索c表,把与1001之间有关系的课题选出为集合R,更新(或添加)c表,把1007和与集合R之间的“是否相关”字段都设置为1,并把1001和1007的“是否相关”字段也设置为1。
    这样,查找相关课程信息时,可能先通过c表,再查找b表和a表。
    以上个人建议,仅作参考