日期:2014-05-18  浏览次数:20508 次

[设计]关于状态的存储设计

    也许大家都遇到过。
    类似如下的流程:
    是关于一条单子(纪录)状态转变的问题。  
    状态1-〉处理2-〉状态3-〉处理3-〉状态4...      
    电话挂机状态-〉提机-〉拨号音状态-〉拨号-〉接通或失败状态    
    一个处理有可能分出不同的状态,一个状态也有可能由不同的处理而来。

      为了迅速准确查询记录现在的状态和经过的所有处理。
      数据库通常怎么存储。
      process               status
      100000100               8
   
      process(nvarchar(9)):`按位存储做过的处理
      status                             :`当前状态

      现在问题是:
      1。在process上如果想查询所有经过第7步处理的数据,索引怎么利用才好?
      2。有时业务变化频繁,需要在第1步和第2步处理之间插入一步处理。怎样灵活对应才好?  
     
 
   
     
   
   
 



------解决方案--------------------
现在问题是:
1。在process上如果想查询所有经过第7步处理的数据,索引怎么利用才好?

假设有八个状态,定义一个8位的字符串(每一位的0-9或A-Z可以代表不同的状态)

有几个状态,该字符串就有几位.
------解决方案--------------------
用字符串可以(加位),用字段也可以(加字段),最好不要用一个字符表示,变化不灵活