【问题标题】:Database design - Approval work flow and version creation数据库设计 - 审批工作流程和版本创建
【发布时间】:2012-12-09 09:14:04
【问题描述】:

我需要帮助设计数据库来管理图书出版过程中的版本。

三种权限/用户类型 - 作者、审阅者、校对者图书通过以下步骤从创建到批准状态:创建、审核、校对并准备发布。

创建的每本书都必须经过以下状态: 草稿: 每本新书都是由作者创建并带有状态草稿。用户完成更改后,可以将其转换为“需要审核”状态。

需要审核: 现在这本书将可供用户审阅 - 需要审阅。 这本书可以“批准”,也可以发回给创作者“需要修改”

如果'需要修改':应创建新版本并发送给作者进行修改,原书应存档 一旦图书被更新并且用户将其发送以供审阅,状态应设置为“图书需要修改” 这本书应该再次经历整个审批周期

如果获得批准: - 状态应更改为“准备校对审查” - 图书将提供给有权进行校对审查的用户

校对员应有权修改图书。

校对人员将在适用的情况下进行更改,并将图书发送给审阅者进行审阅

如果审阅者批准该书,则应“准备出版”

审阅者可以将其发回以对处于“需要 *ProofReading* 更改"

如果设置为“Need ProofReading Changes”,应用程序应存档当前版本,创建一个新版本并将其设置为当前,然后应该进入校对队列。

【问题讨论】:

  • 您能否包括您迄今为止设计的架构并标记您要定位的RDBMS?
  • 我还没有设计架构。我们将使用 MS SQL 2008 R2。
  • 凯恩,感谢您的快速关注
  • 图书本身是数据库的一部分,还是只是状态指示器?

标签: database-design


【解决方案1】:

对于本书本身,您可以考虑使用像 Subversion 或 Git 这样的源代码控制系统。这样,对本书的任何修改都将被保存。您将能够重新创建本书的任何版本。修改本身将作为历史记录提供。

其余信息是状态指示器。您将使用state transition table 表示状态。状态转换表是finite state machine 的一部分。

根据您的描述,我认为这些是一本书可以具有的状态转换。

Draft -> Needs Review
Needs Modification -> Needs Review
Needs Review -> Needs Modification
Needs Review -> Approved

Approved -> Proofreading review
Proofreading review -> Reviewer review
Reviewer review -> Proofreading review
Reviewer review -> Publish book

【讨论】:

  • 谢谢吉尔伯特。但这只是一个例子。我们需要为其他场景而不是书籍开发它。书只是我们给出的简单例子。同样,我们需要在 .NET 中开发它,并且我们不能将我们的系统与 github 或任何其他源代码控制集成。我们需要开发定制的解决方案。
猜你喜欢
  • 2014-02-28
  • 1970-01-01
  • 2010-10-25
  • 2014-10-14
  • 2023-03-30
  • 2011-12-21
  • 2012-10-25
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多