大家好啊!
我 有一个问题想问问大家!
现在我们数据库里有这样几个表!HANDSET
----------------------------------------------------------
ID |牌子    |型号   |日期         | 区域 |价格  |销量    |ID_INFO
----------------------------------------------------------
1  |NOKIA  |1100  |2008-05-01   | 西欧 |200   |100000 |1
----------------------------------------------------------
2  |NOKIA  |2100  |2008-06-01   | 西欧 |300  |130000  |2
----------------------------------------------------------
3  |NOKIA  |1100  |2008-05-01  | 中国 |210   |90000 |1
----------------------------------------------------------
4  |NOKIA  |2100  |2008-06-01  | 中国 |320   |80000  |2
----------------------------------------------------------
5  |NOKIA  |N73   |2008-06-01   | 中国 |1200  |100000  |3
----------------------------------------------------------
6  |NOKIA  |N73   |2008-06-01  | 西欧 |1300  |200000  |3
----------------------------------------------------------
HANDSET_INFO
----------------------------------------------------------
ID_INFO |牌子    |型号   | GPRS    | EDGE|3G  | 颜色      |
----------------------------------------------------------
1  |NOKIA  |1100  | NO     | NO   |NO  |白色、红色|
----------------------------------------------------------
2  |NOKIA  |2100  | NO     | NO   |NO  |蓝色      |
----------------------------------------------------------
3  |NOKIA  |N73   | YES    | NO   |NO  |银色      |
----------------------------------------------------------表HANDSET里的数据每个季度来一次,我们就把它导入数据库,但是表HANDSET_INFO的数据是我们自己输入的(上网找的)这样就存在一个问题!首先大家先关注下这两个表是关联的 。主表为HANDSET外表为哈HANDSET_INFO通过主键ID_INFO连接起来!当我们输入一个新的手机到主键表HANDSET_INFO的时候我们先将其输入到该表!同时再在外键表HANDSET里查找是否有该手机,如果有就用ID_INFO将其连接起来。现在就存在一个问题,如果外健表中没有该手机。我们是不是要输入呢,如果输入了但是没有将两个表该手机连接起来(因为现在外健表里没有 该 手机信息 )如果过一段时间 ,数据到了 (就是每个 季度HANDSET里就要输入新数据,日期、区域不同价格和销量也不同,有一家公司为我们提供该数据,一个季度一次。而他们不提供手机的FEATURE)这个时候或许这些数据里有我们在HANDSET_INFO里输入了但却没有在该表(HANSET) 输入的(因为那个时候这些数据没到,所以 HANSET里就没有了,现在数据到了 ,他就有了),但是那时 输入的时候不知道格式(比如有的网站把SAMSUANG SGH C108 而有的就是SAMSUANG C108),所以输入数据的人员就按照自己的想法随便定义了格式。问题来了
现在就没有办法把这两个表的数据连起来!因为可能牌子和型号的格式不一样!(本来是通过牌子和型号来连接的) 
大家谁能不能给我提一些建议阿!怎么样才能让这两个表更好的连接呢!
先谢谢大家了!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xiaozhang0731】截止到2008-07-24 12:12:23的历史汇总数据(不包括此帖):
    发帖的总数量:2                        发帖的总分数:40                       每贴平均分数:20                       
    回帖的总数量:20                       得分贴总数量:7                        回帖的得分率:35%                      
    结贴的总数量:2                        结贴的总分数:40                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    先谢谢你了LAORER关键是现在两个表连接的话要靠牌子和型号!才能决定是否能连接
    比如主键表里有NOKIA 1100可是从键表里,那个数据还没有来,所以我们先把1100输入!过了一段时间,从键表的数据来了!这个时候我们却不能肯定我们以前是不是在主键表里输入了NOKIA 1100是不是 按照这样的格式输入的!我只是打个比方 ,比如开始在主键表里输入了SAMSUANG C108,而后来从键表里来的数据却是SAMSUANG SGH C108 ,这只是个例子!可能还有其他不同!我只是想说明两个表里这个时候不能连接阿!
      

  3.   

    老实说,我还不是很理解为什么这2个表这样关联。我按自己的理解,怎么都觉得关系应该是反过来的才对。应该A的主键作为B的外键,因为HANDSET_INFO才是真正的手机信息,而 HANDSET是同一手机在不同区域的销售状况,怎么都应该他是子表。假如我的理解有误,或可用尝试多对多的关系那样建表,建一个中间关系表。由这2个表的主键作为这个关系的外键。
      

  4.   

    当向HANDSET表插入数据时,最后一项为手机信息,你可以以弹出列表的形式让用户选择手机信息
    如果没有该手机信息时,必须让用户(或用户向有权限的人申请)添加该手机的信息,之后才能向HANDSET表插入数据
      

  5.   

    既然两张表的来源不一样 并且涉及到不同输入的问题 那就应该预先协调好表结构
    两张表应该有一个统一的接口
    比如每款型号的手机都有一个统一的编码,
    SAMSUANG SGH C108 和SAMSUANG C108 他们的编码就应该一致 例如SS0001
    而不应该通过ID_INFO来关联,因为这不是你们自己一家的数据,你的ID_INFO不可能被人家来使用
      

  6.   

    dvictor
    总算你明白了我的意思 !上边几个兄弟的回答都不是我的意思!
    你说弄个编码,其实我以前也想过这样!不过很难阿
    数据是他们给的!所以我们不可能让他们弄编码阿!
      

  7.   

    mike1980
    不知道就不要乱说阿
    本来第一个就是从表阿
    第二个是主表阿
    你根本就不明白
    不要乱说!