在数据库中建模多个层次结构的最有效方法

时间:2017-12-18 13:05:02

标签: sql sql-server hierarchyid

使用案例 我们正在构建一个应用程序,可以自动执行一些营销和销售操作。管理员将创建一些流程,如流量图,系统用户将上传联系人列表。这些联系人将根据经理创建的流程自动采取行动。

示例: 经理创建一个过程:

1-发送电子邮件

2-检查联系人是否回复了电子邮件

3.1-(回复)发送另一封电子邮件

3.2-(未回复)发送短信

当用户上传联系人列表时,他会将列表与此流程链接,并为所有联系人执行这些操作。稍后需要将数据检索到多种报告中。

问题: 哪种模式可以模拟多个层次结构?

我认为对其进行建模的最佳方法是对工作流中的操作使用层次结构。这些动作需要是顺序的(父子),分支(条件)和被命令。将有n个工作流程,具有n个动作,n个深度,所有这些都在用户的兴趣之下。

我正在考虑使用hierarchyid(我们的公司喜欢SQL Server)将这些层次结构的节点保存在SQL Server的单个表中,但是,由于我对这个特定场景没有太多经验,我害怕我们可能会在将来遇到性能或维护问题。

邻接列表(子父级)需要一个额外的字段来考虑进程中的then / else / case /,并且我不知道其他模式,例如带有hierarchyid的路径枚举,嵌套集还是闭包表适用于同一个表中的多个层次结构。

0 个答案:

没有答案