在sql中使用状态对实体进行建模,其中实体在推进状态时具有更多属性(休眠)

时间:2018-09-02 11:06:03

标签: sql hibernate state

我需要能够为处于不同状态的单个实体建模。问题在于,在每种状态下,实体都有更多归属于它的字段。

就我而言,我有一个匹配实体,其状态为“待处理”,“就绪”,“运行”和“完成”。待决比赛保留比赛开始的日期和时间以及将托管在哪个服务器上,准备好的比赛保留将参加比赛的团队,正在运行的比赛保留比赛进行中的实时比分,以及完成比赛将保留比赛结束的时间和获胜者。

总而言之,匹配实体会经历一种流水线,在不同阶段,会向其中添加新字段。

一种方法是拥有一个大的Match表,其中包含所有状态的所有字段,这些字段在比赛进行到某个状态时被填充。这将意味着该表将具有许多空值,但是最终它们将在匹配处于最终状态时全部被填充。

另一种方法是为每个比赛阶段(PendingMatch,ReadyMatch,RunningMatch等)提供一个表格,其中仅包含与每个阶段相关的字段。由于我使用的是休眠模式,因此每个州都有自己的类,因此在加载匹配项时,您只能访问与该州相关的字段。但是,此方法的问题在于,我将在表中重复列,并且为了推进匹配状态,我必须从其当前表中弹出它,并将其插入到具有该状态的新数据的下一个表中。

这两种解决方案似乎都不理想,但是我看不到任何其他建模方法。 我敢肯定这是一个普遍的问题,但是由于对的准确描述是如此详尽,因此很难在上面找到任何内容!

如果任何人都可以解释哪种方法是最好的,或者可能会喜欢的全新方法。

谢谢!

耶帕德

p.s。我正在使用休眠ORM工具对此进行建模

0 个答案:

没有答案