2011-06-16 26 views
1

我有一个应用程序每天接收大量需要两次员工评论的项目。一旦收到一个项目并输入数据库,它就会进入审查过程。组织查找状态表的优雅方式

审查过程就像这样。

  • 接收项目,并标记应用标签“第一检查器”
    • 首先检查是能够把项目两个未决状态中的一种或清除。清理项目会自动将项目标签替换为“第二个检查器?”。
    • 如果一个项目进入待定状态,它将一直保持在那里,直到审阅者作出最终决定。
  • 第二个检查器检查项目选择一个最终决定。
  • 该项目被标记为完成。

我目前在我的数据库中有一个名为Statuses的表格,其中包含以下列。

Id 
Name 

而在此表中的数据(在IdName格式)。

0, First Checker 
1, Second Checker 
2, Pending State A 
3, Pending State B 

我现在遇到的问题是,该代码有没有办法或知道一旦第一个检查完成他们的检查,并没有把该项目处于挂起状态,下一个标签的项目应得到的是1, Second Checker。我能想出来解决这个问题的唯一方法是在该表中添加一系列的列。例如,我目前有IsFirstChecker,IsSecondCheckerIsPendingStatus列。

因此,所有这些额外的列,我能够检查项目审查何时保存,如果最终的决定,然后查询数据库的状态IsSecondCheckertrue更改标签(或状态,如果你会)与IdItems表的FK)检索。

它似乎不是一个非常理想的解决方案,但它的工作原理。有没有更好的解决方法?

我想补充一点,这个解决方案在很少的代码逻辑下工作。我开始考虑这件事了,也许还有另一种解决方法。

回答