我正在构建一个问卷创建者。问卷由部分组成,部分由页面组成,页面由问题组成。问卷是总根。
部分、页面和问题可以有所谓的短代码,它们在问卷中应该是唯一的(但在数据库中不是唯一的,因此它们不是严格的身份)。我打算使短代码成为一个值对象,并希望在调查问卷中包含它应该是唯一的业务规则,但我不确定如何确保这一点。我的理解是值对象不应该访问存储库或服务层,那么它如何确定它是否是唯一的?
谢谢你的帮助。
达伦
我正在构建一个问卷创建者。问卷由部分组成,部分由页面组成,页面由问题组成。问卷是总根。
部分、页面和问题可以有所谓的短代码,它们在问卷中应该是唯一的(但在数据库中不是唯一的,因此它们不是严格的身份)。我打算使短代码成为一个值对象,并希望在调查问卷中包含它应该是唯一的业务规则,但我不确定如何确保这一点。我的理解是值对象不应该访问存储库或服务层,那么它如何确定它是否是唯一的?
谢谢你的帮助。
达伦
显然,您将需要数据库中的 PK 字段。你如何实现这取决于你,但如果是我,我会将 PK 字段携带到你的值对象中,以便自动处理它。
您可能想要使用类似Guid或 UUID 的东西。但是,您将如何生成一个将取决于您在应用程序中使用的语言。
您可以将生成简码的责任分配给问卷汇总。它可以基于嵌入到问卷对象中的简单计数器。每个想要创建简码的实体都将调用其包含问卷的 NextShortCode() 方法来获取下一个唯一(在当前问卷范围内)简码值。