标签:php models zend-framework business-logic requirements
我正在使用Zend Framework构建一个webapp,我需要建模逻辑或跟踪一些与跟踪目标进度有关的逻辑.
让我举一个示例目标.
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& C和D,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引用.活动完成后,可以在DB中对其进行标记.
要检查已完成的目标,您只需查找目标所需的每个组.每个组可以是“全部”或“任何”(或其他类似的选项,如“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,models,zend-framework,business-logic,requirements 来源: https://codeday.me/bug/20190701/1342040.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。