2016-06-10 17:19:24 2359次浏览 3条回答 0 悬赏 20 金钱

提成比例表

1、每个月的提成比例我都要知道。(例如:我要知道去年3月的提成比例)

2、可能提成比例我半年都不变。(例如:1、2、3、4、5、6月份的数据一样,7月份才有了一点小的变化)

最笨的方法是每个月记录复制一份。

如果该表我把每个月的数据都记录一份,像第二种情况就会出现N多数据冗余。

个人感觉有点像版本控制器的原理,所以我想给每条记录加版本号,不知道有么有人做过类似的项目,有的话希望能共享下、、、

  • 回答于 2016-06-11 16:26 举报

    如果真如你所说,只是存一个提成比例,那给你1M空间存储你一个人的数据,这辈子你应该用不完.
    如果还有其他类似的重复比例较多的大块数据,那你可以给对应的数据建一个单独的表,然后用户数据表中存放对应的id.
    比如:提成比例表中有

    1=>10%
    2=>20%
    3=>30%
    

    那你用户表中就只填id1,2,3

  • 回答于 2016-06-11 23:30 举报

    开始月份,结束月份,提成比例

    2015/01, 2016/01, 20%
    2016/02, 2016/05, 21%
    2016/06, 9999/12, 25%
    

    SELECT * FROM table WHERE 开始月份 <= '2015/03' ORDER BY 开始月份 DESC LIMIT 1;
    or
    SELECT * FROM table WHERE '2015/03' BETWEEN 开始月份 AND 结束月份;

  • 回答于 2016-06-18 01:24 举报

    这样设计:
    1,提成比例表(id,cid,scale) 字段说明:id提成方案父id,cid子id,scale提成比例。
    2,月份提成记录表(id,jan,feb,.....dec,year) 字段说明:id月份提成记录表id,jan~dec为一到十二月,year年份
    3,每月将比例表的id记录进月份提成记录表的对应月份内。
    其他说明:year就是填100年也就100条记录。

    查询的时候:
    通过年份year和月份直接找到对应的比例id;(查询时间很简单,不管是时间戳还是具体日期,月部分为1~12,switch直接找出月份英文缩写即可)
    更新时候:
    同理;

您需要登录后才可以回答。登录 | 立即注册
legend
副总裁

legend 上海普陀

注册时间:2014-08-18
最后登录:2021-04-21
在线时长:299小时28分
  • 粉丝8
  • 金钱3455
  • 威望20
  • 积分6645

热门问题