2011-01-31 39 views
1

这是我第二次来翻过对象和工作日之间的一对多的关系,我不知道如果我以最好的方式模拟它:建模一周多天

@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; 
} 

有没有人遇到过这样做的更好方法?

我的要求是,从本周的当天匹配的数据库检索MyObject所有实例,即无需检查多天,例如星期一= 1 & &周二= 1

回答

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); 
+0

如: `MyObject {Set activeWeekdays}`? – James 2011-01-31 16:18:08

+0

@詹姆斯,正好。我将添加一些信息以显示使用情况。 – jjnguy 2011-01-31 16:19:25

0

如何创建星期几的枚举,然后有存储了适用的日子私家阵列?如果你想变得很花哨,你可能会有一些结构(例如Set,我认为它不允许重复),而不是防止重复的数组。

如果您还使用此同一个数据库,你运行的是什么类型的查询来获取数据,并且您使用的是什么样的表结构(枚举的解决方案可能无法与所有的数据库工作)?