1

オブジェクトと平日の間に1対多の関係に遭遇したのはこれが2回目であり、それを最良の方法でモデリングしているかどうかはわかりません。

@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

曜日の列挙型を作成してから、該当する曜日を格納するプライベート配列を作成してはどうでしょうか。凝ったものにしたい場合はSet、重複を防ぐ配列以外の構造(重複を許可しないと思うなど)を使用できます。

これをデータベースでも使用している場合、データを取得するためにどのような種類のクエリを実行し、どのような種類のテーブル構造を使用していますか(列挙型ソリューションはすべてのデータベースで機能するとは限りません)?

于 2011-01-31T16:15:43.483 に答える