gpt4 book ai didi

c# - DDD 命令模式实现细节 - 持久化命令

转载 作者:太空宇宙 更新时间:2023-11-03 14:21:35 24 4
gpt4 key购买 nike

我有一个设计,我希望能够将一个或多个命令对象分配给一个实体,然后该实体将使用这些命令作为其工作流程的一部分。为了争论的缘故,比如将附加功能分配给用户的帐户。

我了解命令模式及其适用方式,但我的问题是持久性。如果我有一个命令列表,其中每个用户帐户都可以有自己的命令列表,并且为了争论起见,我们假设命令唯一重要的是它的系统类型,和/或它们都具有相同的属性。在实现我的数据层时坚持这一点的最佳方式是什么?

我正在考虑将其作为帐户表和命令/功能表之间的多对多关系,其中后一个表遵循 TPH 策略(即所有命令都保存在同一个表中)。这似乎是最干净的做法,但我想看看是否还有其他人采用不同的策略?

您是否改为将其设为 1:多关系,其中添加了相同功能的任何两个帐户都具有该功能的不同实例?还是有我根本没有想到的更好的方法?

最佳答案

TPH 的多对多在我看来还不错。

尽管我想知道您将命令附加到不同用户的设计决定,但您似乎正试图将它们用于授权 |许可目的,而不是使用基于角色的安全性或 ACL 实现正常的授权系统。如果是这种情况,那么我可能会在内部级别使用基于角色的安全性,以及基于内部安全性动态创建的 UI 命令,而不是静态存储在数据库中。

关于c# - DDD 命令模式实现细节 - 持久化命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5207457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com