Chinaunix首页 | 论坛 | 博客
  • 博客访问: 663527
  • 博文数量: 59
  • 博客积分: 6011
  • 博客等级: 准将
  • 技术积分: 2600
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-25 13:42
文章分类

全部博文(59)

文章存档

2011年(2)

2009年(12)

2008年(45)

我的朋友

分类:

2009-11-27 19:53:08

当要求页面显示的内容按照多重要求排序时,可借鉴如下做法。
 
一个物品数据库有若干属性
 
   型号     品牌    会员等级   年代     地区           现货    认证    热门
   LM358    MAX     一级     09        中国        现货库存   通过    是
   LM358    MAX     二级     09        美国        -         未通过  是
   LM358    MAX     一级     09        美国        -         未通过  否
如果只按照简单的一个或两个任务做排序是比较简单的,但如果有一个比较复杂的排序规则该如何做呢?
 
  比如:
     1 会员等级高的排在最前面
     2 通过了认证的排在前面
     3 热门的排在前面
     4 国内的排在前面
 
按照这个规则做,我们可以再建立一个字段 OID
 
     我们给每一个规则评分
     1 会员等级高的排在最前面  一级80分   二级 60分   三级40
       一级80分那后面的分值总和为20分   这样低级的无论如何都逾越不了第一级
     2 通过了认证的排在前面   通过+12分  
     3 热门的排在前面     通过+ 6分
     4 国内的排在前面     通过+ 1分
要保证后面加起来的分值是前面的总和 4+3+2 + 1=100分  而且低级排序规则分值相加逾越不了高级排序规则,只能平级竞争。这样
 
   型号     品牌    会员等级   年代     地区           现货    认证    热门  OID
 
   LM358    MAX     二级     09        中国        -         通过    是   79分 
   LM358    MAX     一级     09        中国        现货库存   通过    是   99分
   LM358    MAX     一级     09        美国        -         未通过  否   80分
   LM358    MAX     一级     09        美国        -         未通过  否   81分
给出了分值之后按照分值排序就得到了想要的效果:
  
   型号     品牌    会员等级   年代     地区           现货    认证    热门  OID
   LM358    MAX     一级     09        中国        现货库存   通过    是   99分
   LM358    MAX     一级     09        美国        -         未通过  否   81分 
   LM358    MAX     二级     09        中国        -         通过    是   80分 
   LM358    MAX     一级     09        美国        -         未通过  否   79分
 
有没有通项式呢?
 
   首先我们把分值定为100满分
 
      第一项分值如何定:  第一项分值一般看第一个条件有没有做分级,比如第一个条件是按会员级别,会员级别是分级的,一级、二级、三级、四级、五级。 小于4极的我们一般定80分起,因为100-80=20
20分要分给后项,要保证二级的+20分也不超过一级,所以二级定60分一直到4级20分  如果有第五级那第一级就不能定80分,最合适的分值是90分   这样每一个子集分值就为90  80  70 60 50 40 30 20 10.
 
     第二级也是一样,但最后一级要注意,要在刚好总分值加起来=100的基础上减去一个最小单位,比如上面的第四项分值如果为2刚好加起来=100,但这里要减去一个最小单位1,以保证以上各项分值不可逾越。
 
  我们以一般1000满分统计   首项小于5级
       
   一级 二级  三级  四级 
 最优先条件1  800 600 400  200 
 次级条件2  160 120  80  40 
 再次条件3 20  16  08  04
 再次条件4  2  1.6 0.8  0.4 
 最后条件5  0.2 0.16  0.08  0.04 
         
 
  
未完.....
阅读(1202) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~