Web サイトのドメイン モデルの特定の部分を設計しようとしています。
私が抱えている問題は、曜日 ( Day) と時間枠 ( TimeSlot)で一種の可用性マトリックスを表すことです。
可能な値は次のDayとおりです。
- 月曜日
- 火曜日
- 水曜日
- ...
可能な値は次のTimeSlotとおりです。
- 学校の前
- 朝
- 昼
- 午後
- 放課後
- 夜
- 夜間
Day現在、上記の 2 つの列挙型 (およびTimeSlot) をフィールドとして持つ JPA エンティティがあります。
@Entity
public class DayToTimeSlot {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@NotNull(groups = { Default.class, Validation.AdvertisementCreation.class })
@Enumerated
private Day day;
@NotNull(groups = { Default.class, Validation.AdvertisementCreation.class })
@Enumerated
private TimeSlot timeSlot;
}
次にDayToTimeSlot、すべての可能な値/組み合わせを参照テーブルに入力します。
最後に、次のようなインスタンスAdvertisementを持つエンティティがあります。@ManyToMany java.util.SetDayToTimeSlot
@ManyToMany
private Set<DayToTimeSlot> dayToTimeSlots;
これにより、非常に急速に拡大する可能性advertisement_day_to_time_slotsのある結合テーブルが作成されます。
この可用性マトリックスをモデル化するためのより良い方法はありませんか?