我们正在学习DDD并评估其在由遗留系统支持的系统中的使用。数据存储。
我们一直在使用反腐败层,泡泡上下文和有界上下文而不了解它们,这种方法对我们来说似乎非常实用。
但我们对识别方法和身份相关性并不确定和自信。 传统数据存储没有主键,而是使用复合唯一索引来标识信息。
我们当前正在创建我们的模型作为Value对象,它们应该是Entities(希望为每个都添加“Long id”字段),或者我们很少使用唯一索引中使用的属性组合作为id字段。我们似乎很清楚,实体模型应该有id字段。
以下是我的具体问题:
和其他问题:
我们如何将遗留信息用于我们不断发展的优质域模型,减少识别内容的痛苦?
或者在项目生命的任何时候对我们的域名 Long id 表示不好而且没有价值?
我们如何重构身份管理?
更新
答案 0 :(得分:0)
使用符合您需求的任何标识符,但要对选择错误的标签的成本和含义保持现实和前瞻性。从外部分配标识符并将其存储在其他信息位(无论格式如何(guid,long,uuid))都是有用的。是否重构身份管理更多的是进行成本/收益分析。它甚至是遗留系统的一个选项,在什么样的时间范围内有两个键侧面?为什么你甚至重用相同的数据存储区?为什么不对它进行分区,以便您可以拥有并行数据存储(最坏的情况是甚至在两个数据存储之间同步数据,最好是在一个方向上)?尝试一些垂直切片而不是水平切片。 HTH。