我的数据库中有时间表表。
时间表ID已自动指定为主键。
时间表表中还有其他列的任务编号,任务阶段,任务描述等。
每次保存时间表条目之前,我想检查表中的taskNo和taskphase的值。
如果该值与新时间表条目的值相同,则不应保存。这意味着检查
taskNo和taskphase的重复条目。

首先,我考虑将实体设计为复合主键(taskno taskphase)。但是我放弃了这种尝试,因为可能需要编辑这些列。

在休眠状态下进行这种设计的最佳方法是哪一种?

最佳答案

我认为您可以大致采用两种方法

1)让数据库执行唯一性检查,只需在列上放置唯一约束,当您插入重复值时,数据库将引发错误,您可以将该错误传播到UI。

2)应用程序进行验证,您可能需要读取所有taskNo和taskphase,然后循环遍历它们以查找新插入的值是否重复。

如果行数非常大,请考虑使用某种形式的数据库延迟加载,例如使用结果集等。

07-28 09:01