Php 用户生成/用户特定功能
我正在寻找最优雅和安全的方法来执行以下操作 我有一个日历和一组用户 用户可以将事件添加到日历上的特定日期,并指定每个事件持续的时间 我收到了一些用户的请求,希望他们能够定义特定长度的事件包括中断、特定时间,或者要求在事件之间留出特定时间 例如,如果事件>2小时,则包括20分钟的休息时间。对于每个活动,需要在下一个活动开始前30分钟 要求2小时以上的活动包括20分钟休息的同一组,也可以要求3小时以上的活动包括30分钟休息 最后,用户试图得到的是一个经过的时间,不包括为他们计算的中断时间。目前,我向他们提供了总运行时间,但他们正在寻找运行时间 但是,对于每个组,这些请求都是不同的。其中一组可能希望在2小时的活动中休息30分钟,另一组可能希望在每3小时的活动中休息10分钟 我在想,我可以将每个组的函数写入一个php文件,然后包含该文件,并通过php进行计算,然后将计算出的总数返回给用户,但这方面的一些内容并不适合我 另一个选项是将groups函数输出到javascript,并让它在客户端运行,因为我已经返回了事件的持续时间,但是如果用户是多个具有不同规则的组的一部分,那么它可能会变得相当混乱 我目前在数据库中存储开始和结束时间,但没有“持续时间”,我认为我不应该在数据库中存储计算的总数,因为如果一个组决定更改其计算,我需要在整个数据库中更改它 有更好的方法吗? 我只想将变量存储在mysql中,但我不知道如何才能告诉mysql基于这些变量进行计算 我在这里真的迷路了。有什么建议吗?我希望有人也做过类似的事情,能够提供一些关于最佳方向的见解 如果有帮助,我的表包含 eventid, user, group, startDate, startTime, endDate, endTime, type eventid、用户、组、开始日期、开始时间、结束日期、结束时间、类型 我返回给用户的事件的json是 {"eventid":"'.$eventId.'", "user":"'.$userId.'","group":"'.$groupId.'","type":"'.$type.'","startDate":".$startDate.'","startTime":"'.$startTime.'","endDate":"'.$endDate.'","endTime":"'.$endTime.'","durationLength":"'.$duration.'", "durationHrs":"'.$durationHrs.'"} {“eventid:”.$eventid.“,“user:”.$userId.“,“group:”.$groupId.“,“type:”.$type.“,“startDate:”.$startDate.“,“startTime:”.$startTime.“,“endDate:”.$endDate.“,“endTime:”.$endTime.“,“durationLength:”.$duration.“,“durationHrs:”.$durationHrs.“}Php 用户生成/用户特定功能,php,mysql,user-defined-functions,Php,Mysql,User Defined Functions,我正在寻找最优雅和安全的方法来执行以下操作 我有一个日历和一组用户 用户可以将事件添加到日历上的特定日期,并指定每个事件持续的时间 我收到了一些用户的请求,希望他们能够定义特定长度的事件包括中断、特定时间,或者要求在事件之间留出特定时间 例如,如果事件>2小时,则包括20分钟的休息时间。对于每个活动,需要在下一个活动开始前30分钟 要求2小时以上的活动包括20分钟休息的同一组,也可以要求3小时以上的活动包括30分钟休息 最后,用户试图得到的是一个经过的时间,不包括为他们计算的中断时间。目前,我向
例如,其中持续时间长度为2.5,持续时间小时数为2:30。仅存储事件的开始时间和结束时间,以及名为
notes
的BLOB字段
我曾经在几个系统上工作过,这些系统都遭受了此类需求的特性蠕变,直到代码和数据建模成为无法维护的异常情况集合。向代码中添加新的排列需要大量的工作,通常这些情况只使用一次
如果您需要强制执行notes字段中描述的规则和条件,那么雇佣事件协调员实际上比尝试自动化软件中的所有内容更经济高效。面向细节的人员适应异常情况的速度要比适应代码处理异常情况的速度快得多。只存储事件的开始时间和结束时间,以及名为
notes
的BLOB字段
我曾经在几个系统上工作过,这些系统都遭受了此类需求的特性蠕变,直到代码和数据建模成为无法维护的异常情况集合。向代码中添加新的排列需要大量的工作,通常这些情况只使用一次
如果您需要强制执行notes字段中描述的规则和条件,那么雇佣事件协调员实际上比尝试自动化软件中的所有内容更经济高效。一个注重细节的人适应异常情况的速度要比你适应代码处理异常情况的速度快得多。谢谢比尔,这是我最初的过程,但用户坚持认为计算的时间反映了他们制定的规则。我想如果他们知道2小时的活动包括20分钟的休息时间,那就足够了,但是因为他们得到了一天中计划的总小时数,他们需要知道有多少休息时间。我完全同意你的观点,并一直在努力使它尽可能简单,但这一点不断出现,需要一个解决方案。给他们一个在软件中实现这个系统所需时间和工资的估计,并向他们展示一个用户界面的模型。我打赌他们会改变主意的。谢谢比尔,这是我最初的过程,但用户坚持认为计算的时间反映了他们制定的规则。我想如果他们知道2小时的活动包括20分钟的休息时间,那就足够了,但是因为他们得到了一天中计划的总小时数,他们需要知道有多少休息时间。我完全同意你的观点,并一直在努力使它尽可能简单,但这一点不断出现,需要一个解决方案。给他们一个在软件中实现这个系统所需时间和工资的估计,并向他们展示一个用户界面的模型。我打赌他们会改变主意的。