我的应用正在处理用户请求。每个请求具有以下状态:“从用户接收的请求的某些部分”,“接收的所有部分”,“开始处理”,“结果准备好”,“结果发送给用户”。 我想将请求状态存储在数据库中作为单个列。现在我有两个想法如何实现它:
使用字符串列。每个请求状态都存储为文本。对于 例如,发送给用户的请求将具有状态 “已发送”的价值。
使用整数列。每个请求状态都存储为int。例如,“从用户收到的请求的某些部分”= 1,“收到的所有部分”= 2,“开始处理”= 3,“结果准备就绪”= 4,“结果发送给用户”= 5。
我发现当一个字节足够时,使用多个字节是没有意义的。我甚至同意编写转换代码(文本状态 - >整数状态,反之亦然)。但我应该怎样做突发中间状态?有不同的方法吗?
答案 0 :(得分:1)
将数据存储为整数不必隐藏您的信息,您可以创建一个查找表,将整数常量与其文本值相关联,然后如果要查看数据的文本表示,请加入它们。
另一方面,除非您计划存储数百万行,或者每秒必须处理数千个事务,否则状态表中的额外几个字节可能不会产生太大差异。
当你说“突然的中间状态”时,我不确定你的问题的后半部分是什么意思。您是否担心以后必须添加更多状态,或者您是否正在讨论将状态从一个状态转换为下一个状态作为有限状态机中的状态?