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从数据库中检索与一周中当前日期匹配的所有实例,即无需检查多天,例如 mon=1 && tues=1

4

2 回答 2

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);
于 2011-01-31T16:15:28.723 回答
0

如何创建一周中的几天的枚举,然后拥有一个存储适用日期的私有数组?如果你想变得花哨,你可以有一些结构(例如 a Set,我认为它不允许重复),而不是防止重复的数组。

如果您还将它与数据库一起使用,您正在运行哪种查询来获取数据,以及您使用的是哪种表结构(枚举解决方案可能不适用于所有数据库)?

于 2011-01-31T16:15:43.483 回答