2

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

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

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

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

4

1 回答 1

1

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

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

于 2011-03-06T05:42:18.903 回答