php - 如何在 PHP 中为目标建模和跟踪需求

标签 php zend-framework models requirements business-logic

我正在使用 Zend Framework 构建一个网络应用程序,我需要对逻辑进行建模或跟踪一些与跟踪目标进度有关的逻辑。

让我用一个示例目标来说明

USER Needs to Complete All Three of the following:
A) Activity One
B) Activity Two
C) Activity Three
USER Needs to Complete One of the following:
D) Activity Four
E) Activity Five
F) Activity Six

USER 完成了第一组的所有三个任务和第二组的一个任务后,就完成了该目标。我将如何在 PHP 中对此进行建模,以便 webapp 知道目标已经完成以及我将如何将数据存储在数据库中?

要明确,会有许多不同类型的目标,但它们在本质上都非常相似。

最佳答案

假设 A, B & CD, E, & F 将始终属于目标中的特定组,我会这样设计:

Goal::isComplete()
{
  foreach (Group)
  {
    switch (Group::type())
    {
      case "all":
        TRUE if all complete
        break

      case "any":
        TRUE if any complete
        break;
    }
  }

  if all TRUE
    return TRUE
}

或者用英文...

然后您可以将所有事件存储在一个事件表中,并将它们所属的组定义为对组表的简单 ID 引用。当一个事件完成时,它可以在数据库中被标记。

要检查已完成的目标,您只需查找目标所需的每个组。每个组可以是“全部”或“任何”(或其他此类选项,如“min-2”),这将告诉脚本要检查事件完成情况。然后每个组可以根据其事件返回 TRUE 或 FALSE。假设所有组都是必需的,那么目标将很容易被识别为完成或未完成。

数据库看起来像:

Activities
- id
- group_id
- name
- completed
- [details about activitiy]

Groups
- id
- goal_id
- type  (ENUM: 'any', 'all')
- completed
- [details about group]

Goals
- id
- completed
- [details about goal]

组和目标中的已完成值需要在事件更新或遗漏时主动更新,并且它们的值始终动态计算。

这是否有意义并满足您的要求?

关于php - 如何在 PHP 中为目标建模和跟踪需求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402289/

相关文章:

php - 如何在 php 网站上创建管理员登录?

php - php中的fexpr是什么?

php - 如何在 Zend 中更新数据库表记录?

zend-framework - Zend Framework : How and where to create custom routes in a 1. 8+ 应用程序?

python - Django 应用程序中的良好实践 : Organizing views. py

Laravel 从数据库或迁移脚本生成模型、 View 和 Controller

ruby-on-rails - 在 Rails 模型中 self 指代父亲字段中的男性和母亲字段中的女性?

php - $_SERVER ['REQUEST_URI' ] 也带有#hash?

php - 在 linux 中使用 cURL 上传 http 文件(命令行)

unit-testing - Zend 框架 : How to unit test a model using Zend_Service_Twitter