我正在寻找一些关于建模各种实体及其文档(二进制文件,如 PDF、TIFF 等)之间关系的最佳实践建议。这些实体是存储在 PostgreSQL 数据库中的标准 JPA/Hibernate。文档本身将存储在 MongoDb 数据库中。
计划是创建一个子实体来表示文档,其中包含二进制数据的 id,以便根据需要检索它。但是这种关系会是怎样的呢?
如果我只是为每个父实体创建了一个这些文档实体,那么简单的一对多关系将起作用,但这似乎是多余的。
我可以简单地放置一个“type”列来指示文档属于哪个实体,然后使用“id = ? and type = ?”的命名查询来查询文档表。我想这会奏效,但有些事情我也不为之疯狂——只是不能把我的手指放在上面:) 也许这很好。
我看过的另一个选项(尽管我承认我以前从未使用过它,并且需要更多地研究它)是使用单向一对多的连接表。但是,我认为这也行不通,因为不能保证不会有重复的父键。我对所有基本关系表的主键都使用了一个序列,这应该可以保证,但这听起来仍然不是一个好主意。
最后,我考虑过是否创建一个实体,然后为每个父实体扩展它,但我认为这会有相同的缺陷——非唯一父 ID 的理论存在。
在我做出最终决定之前,我想看看社区可能会提供哪些其他建议。
提前感谢您的想法。