三张表:工程表  论文表   获奖表工程和论文都可以分别获奖 我想在工程表和论文表都设一个是否获奖的字段,当未获奖时填0,若获奖了就对应获奖表里的ID,不知道这样做合理不?或者,在获奖表里加两个工程ID和论文ID,分别对应工程表里的ID和论文表里的ID,这两种方法哪个好,或者有更好的办法,谢谢大家了先~~~~~

解决方案 »

  1.   

    forgot(忘记forgot2000) 
    ............................大哥,繁体字看不大懂啊
      

  2.   

    获奖表--------IDKye,type,ID
            IDKey为主键﹐类型可以设置别的表也可以定列一个规则(如工程表—gbhz, 论文表—lwhz)以后还有别的状可以再加入﹐ID为对应的表的ID了。
    查询的时候主要查询对应的类型就可以知道那个什么的呀
      

  3.   

    fangbuge(窗外的雨) ( ) 信誉:101    Blog   加为好友  2007-05-10 16:52:28  得分: 0  
     
     
       第一种方法,如果操作得奖信息,你就需要操作两张表(一张得奖表,还要改状态),这样数据库就容易让数据库产生数据不一致的问题。
      
    //...................................................是啊,第一种方法操作起来就是两张表,得用事务做的,有没有更好更简单的办法呢? 
      

  4.   

    触发器不行的,我是在ASP.NET里面用程序写的事务啊
      

  5.   

    用第一种方法蛮好的啊,到时直接用sql把相关的两张表连起来不就行了吗?如果想方便就建一个存储过程,没有必要用事务,又不存在锁的问题,更没有必要用触发器,触发器尽量不用为好。
      

  6.   

    当未获奖时填0
    ——————————————————————————————————————————
    当未获奖时保持为null。不要随便混淆数据类型,如果没有或者未知(注意,包括未知),不要用一个自认为可以区分的值,应该用系统专门用来表达这种情况的值。