2

我有一个代表文档的实体,如下所示:

文档 date_creation doc_number doc_origin

文档通常被称为'2012/XY/005',这将是 2012 年由 XY 发起的第五个文档。所以数字必须在它创建的年份和相同的起源中是唯一的,我需要为它设置一个约束。

使用 JPA 对其进行建模和映射的最佳方法是什么?

我认为我的选择是:

选项1:在日期创建中放置另一个字段为年份的文档实体,并使其唯一(年份,文档编号,文档来源)

选项 2:创建一个字段 doc_ref 并放置一个字符串,如 'YEAR/ORIG/NUMBER' 并使其唯一(doc_ref)

两个选项都添加了另一个重复年份的字段,但选项 1 要求我更新字段年份与 date_creation 一致,选项 2 要求我更新字段 doc_ref 与其余字段一致,所以我倾向于认为选项 1 是最好的。

还有其他我没有看到的选择吗?谢谢!

4

1 回答 1

0

如果您的数据库允许,您可以使用基于函数的唯一索引。Oracle 中的示例:

CREATE UNIQUE INDEX YEAR_ORIGIN_NUMBER_IDX 
on DOCUMENT (TRUNC(DT_CREATION, 'YEAR'), DOC_ORIGIN, DOC_NUMBER)
于 2012-04-13T14:01:32.973 回答