我的数据库中有时间表表。
时间表ID已自动指定为主键。
时间表表中还有其他列的任务编号,任务阶段,任务描述等。
每次保存时间表条目之前,我想检查表中的taskNo和taskphase的值。
如果该值与新时间表条目的值相同,则不应保存。这意味着检查
taskNo和taskphase的重复条目。
首先,我考虑将实体设计为复合主键(taskno taskphase)。但是我放弃了这种尝试,因为可能需要编辑这些列。
在休眠状态下进行这种设计的最佳方法是哪一种?
最佳答案
我认为您可以大致采用两种方法
1)让数据库执行唯一性检查,只需在列上放置唯一约束,当您插入重复值时,数据库将引发错误,您可以将该错误传播到UI。
2)应用程序进行验证,您可能需要读取所有taskNo和taskphase,然后循环遍历它们以查找新插入的值是否重复。
如果行数非常大,请考虑使用某种形式的数据库延迟加载,例如使用结果集等。