我正在使用java + mongodb。 而且我需要在一周中的某一天做商业逻辑和数据库逻辑。
考虑性能,可读代码,避免错误等
我应该创建一个枚举类型。
public enum DayOfWeek {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}
或使用int代替(2,3,4,5,6,7,8)
由于
答案 0 :(得分:0)
使用enum
会提高可读性,维护也会更容易。
我不确定java驱动程序如何转换enum
值(但我认为这将是c#中的int),这意味着文档会更小并且搜索会更容易(比较{{ 1}}总是比比较int
)快。
使用序列不是从1开始(自然)可能导致像5这样的问题?另一件事是,某些语言或技术将星期日定为strings
0
1
- 所以7
- 支持整数看起来是一个更好的解决方案。
修改
由于您有预定义的枚举值,因此可以忽略一些问题。在dayOfWeek字段上创建索引将解决问题,可以跳过数据大小开销(或者如果有数十亿条记录 - 那么应该考虑int值)
使用枚举,因为它使代码更易读,更易于维护/调试。
答案 1 :(得分:0)
确实,Enum值在mongo docs中保存为字符串。基本上为了便于阅读,我选择枚举而不是字符串。
如果同一个数据库被另一个(非Java)应用程序读取,则变得更加重要,在这种情况下,最好不要使用神秘的数字。