如何在数据库模型中转换域模型集合中实体的本地身份

时间:2018-11-08 15:09:20

标签: database-design relational-database domain-driven-design

在我的域模型中,我有一个聚合,聚合根当然具有全局唯一的标识,而该聚合的其他实体仅具有相对于根实体的本地标识。

到目前为止,一切都很好。现在,我正在尝试设计将存储此聚合数据的数据库。

我的第一个猜测是使用相同的本地身份概念进行设计,这意味着其他实体表的主键都将包含根实体键(多列键)。

选项1: enter image description here 另外请注意,由于我有许多嵌套的子实体,因此最后一张表中的第4列PK结束了。

另一种方法是像这样在每个表中使用单个列键 选项2: enter image description here

我不确定要使用哪个。虽然我喜欢选项1更好地与域逻辑保持一致,但它似乎更复杂,而且我不确定是否会遇到一些性能问题。

选项2似乎更简单,但与域的一致性较低。对我来说,这意味着子实体可以通过更改FK值来更改其父级,但是从业务逻辑的角度来看这是不可能的。

我应该考虑决定使用哪个选项?您还看到其他选项吗?

0 个答案:

没有答案