这是我第二次遇到对象和工作日之间的一对多关系,我不确定我是否以最佳方式对其进行建模:
@Entity
MyObject {
private int id;
private String foo;
private boolean monday;
private boolean tuesday;
private boolean wednesday;
private boolean thursday;
private boolean friday;
private boolean saturday;
private boolean sunday;
}
有没有人遇到更好的方法呢?
我的要求是从数据库中检索与{* 1}}匹配的所有实例,即不需要检查多天,例如mon = 1&&周二= 1
答案 0 :(得分:3)
在对一组中有限数量的项目进行建模时,通常最好使用enum
。
public enum DayOfWeek {
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
你可以在你的班级中使用它,如下所示:
class YourClass {
private Set<DayOfWeek> activeDays;
public void addActiveDay(DayOfWeek day){
activeDays.add(day);
}
}
...
yourclass.addActiveDay(DayOfWeek.Friday);
答案 1 :(得分:0)
如何创建一周中的日期枚举,然后有一个存储适用日期的私有数组?如果你想获得幻想,你可以有一些结构(比如Set
,我认为不允许重复),而不是防止重复的数组。
如果你还在数据库中使用它,你运行什么样的查询来获取数据,你使用什么样的表结构(枚举解决方案可能不适用于所有数据库)?