已有数据项,例如:
A B C D
A C 
B A C
C B 
.......统计出相关性如下:
A和B 同时出现2次
A和C 同时出现3次
A和D 同时出现1次
B和C 同时出现3次
B和D 同时出现1次
C和D 同时出现1次
........要建表保存这个相关性
AB 2
AC 3
AD 1
BC 3
BC 1
CD 1之后按相关性排序查找
例如找A最相关的项依次是
C 3 
B 2
D 1这个关系标怎么建,方便高效率更新数据和查找数据

解决方案 »

  1.   

    把每个项都建成一个column,有的就放,没有的就置空,然后查询。
      

  2.   

    项很多,而且不固定,不能建成coloum
      

  3.   

    建表:
    TableA:(id int indentity(1,1) primary key,A int, B int, C int, D int, AB int ,AC int,AD int,BC int,BD int, CD int)
    即一个ID列,4个基本列,两两相互组合的6个列.
    1.先插入原始值如:
    A B C D
    A C  
    B A C
    C B  
    等效于
    insert into TableA (A,B,C,D)
    select 1,1,1,1 union all
    select 1,0,1,0 union all
    select 1,1,1,0 union all
    select 0,1,1,0
    2.然后初始化后6列为1
    update TableA set AB =1,AC=1,AD=1,BC=1,BD=1,CD=1
    3.根据基准列的存在性计算组合列的存在性
    update TableA set AB=0,AC=0,AD=0 where A=0
    update TableA set AB=0,BC=0,BD=0 where B=0
    update TableA set AC=0,BC=0,CD=0 where C=0
    update TableA set AD=0,BD=0,CD=0 where D=0
    4.统计相关性
    select sum(AB),sum(AC),sum(AD),sum(BC),sum(BD),sum(CD) from TableA