2011-03-05 219 views
2

我有一个设计,我希望能够将一个或多个命令对象分配给实体,然后这个实体将使用这些命令作为其工作流程的一部分。为了论证的缘故,就像为用户的帐户分配附加功能一样。DDD命令模式实现细节 - 持久命令

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

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

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

回答

1

TPH多对多看起来对我来说还不错。

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

+0

谢谢,不,它不是一件安全的事情,它是一件处理事情;我的例子不是该项目的确切用法,只是我能想到的最接近的用法。 – Paul 2011-03-06 14:53:39