要求维护这样一个信息,就是一个列的数据范围,对应一个值,比如对员工的综合评定成绩发奖金
60分以下:0
61~70:100
71~80:200
81~90:300
90以上:500这个信息希望存储到数据库中,而且是可以维护的,比如增加一个范围或者修改一个范围等,就好比改为如下:
60分以下:0
60~70:100
71~75:150
76~85:200
86~90:300
90以上:500
对于这样的标设计,大家有没有什么好办法或者曾经应用的例子有类似的东西的,最好能够好维护一点,谢谢大家
60分以下:0
61~70:100
71~80:200
81~90:300
90以上:500这个信息希望存储到数据库中,而且是可以维护的,比如增加一个范围或者修改一个范围等,就好比改为如下:
60分以下:0
60~70:100
71~75:150
76~85:200
86~90:300
90以上:500
对于这样的标设计,大家有没有什么好办法或者曾经应用的例子有类似的东西的,最好能够好维护一点,谢谢大家
-- 设计这样的表就行了
结束分数 值
60 0
70 100
80 200
90 300
NULL 500要改的话, 改结束值即可
要计算值的话, 用一个自定义函数
CREATE FUNCTION dbo.f_calc(
@分数 int
)RETURNS int
AS
BEGIN
DECLARE @re int
SELECT @re = 值
FROM 数据范围表
WHERE 结束分数 < @分数
IF @@ROWCOUNT = 0
SELECT @re = 值
FROM 数据范围表
WHERE 结束分数 IS NULL
RETURN(@re)
END