请教个数据库设计和数据规则问题
有一组数据规则,H=6对应的H1数据是H1=3.5,H=7对应的H1数据是H1=6,H=8对应的H1数据是2.5。 
 根据H的值,更新H1的值 
 一种方法是条件判断update   表1 
 set   h1=case   when   H   =   6      then   3.5 
                                     when   H   =7   6   then   6 
                                     when   H=8   then   2.5 
                      end 
 第二种方法建一个数据对照表   表2 
 H               H1                                                                     update   表1 
 6               3.5                                                                  set   表.h1=表2.h1       
 7               6                                                                        FROM   表1   INNER   JOIN 
 8               2.5                                                                  表2   ON   表1.H   =   表2.H 
 用哪一种方法好呢, 
 第一种当条件比较负责的时候比如要判断大于,小于的时候会方便一点   
 第二种数据对照关系改变的时候直接修改数据库就可以,不用再改语句或程序,可是如果判断条件复杂的话,第二种表应该怎么建呢,比如有大于小于的情况和有权重的情况,比如H=6或5,H1=3.5   ;3 <H <6=4这种情况呢 
 希望有数据库设计或程序设计方面的高手给我指点一下; 
------解决方案--------------------对照表这样建   
 最小值,是否含最小值, 最大值 ,是否含最大值 ,对应的值     
 这样复杂的条件也可以用join来update 
------解决方案----------------------如果阶段连续,只用最大值就可以了。以下是例子 
 declare @t1 table(h int ,h1 int) 
 insert @t1 --(h,h1)  
 select 2,1 union all 
 select 4,2 union all 
 select 6,3    
 declare @t2 table(h int )  
 insert @t2 (h)  
 select 1 union all 
 select 2 union all 
 select 3 union all 
 select 4 union all 
 select 5 union all 
 select 6 
 select * from @t1 
 select * from @t2 
 --下面这个改成view 
 select a.h,min(b.h1) h1 from @t2 a left outer join @t1 b on a.h <=b.h group by a.h
------解决方案--------------------update t 
 from t.要更新的值 = d.对应的值 
 join 对照表 d  
    on (d.是否含最小值 = 0 and t.关联的值 >  d.最小值 or d.是否含最小值 = 1 and t.关联的值 > = d.最小值) 
    and (d.是否含最大值 = 0 and t.关联的值  < d.最大值 or d.是否含最大值 = 1 and t.关联的值  <= d.最大值)     
------解决方案----------------------如果阶段不连续 h= 0,1,2 h1没有值,h=3,4,5,6,h1=4;h=7 h1=88;h=8,h1=99 
 declare @t1 table(h int ,h1 int) 
 insert @t1  
 select 2,null union all 
 select 6,4    union all 
 select 7,88   union all 
 select 8,99