Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 减去或比较一个极限_Php_Mysql - Fatal编程技术网

Php 减去或比较一个极限

Php 减去或比较一个极限,php,mysql,Php,Mysql,使用以下表格: 研讨会 WorkshopID | WorkshopName | WorkshopLimit 1 Workshop A 10 2 Workshop B 20 3 Workshop C 30 4 Workshop D 40 5 Workshop E 50 ParticipantID |

使用以下表格:

研讨会

WorkshopID | WorkshopName | WorkshopLimit
    1         Workshop A         10
    2         Workshop B         20
    3         Workshop C         30
    4         Workshop D         40
    5         Workshop E         50
ParticipantID | RegistrantID | WorkshopID
      1              1             1
      2              1             2
      3              2             3
      4              3             2
      5              3             5
      6              4             1
      7              4             4
      8              5             4
研讨会参与者

WorkshopID | WorkshopName | WorkshopLimit
    1         Workshop A         10
    2         Workshop B         20
    3         Workshop C         30
    4         Workshop D         40
    5         Workshop E         50
ParticipantID | RegistrantID | WorkshopID
      1              1             1
      2              1             2
      3              2             3
      4              3             2
      5              3             5
      6              4             1
      7              4             4
      8              5             4

只需减去并更新每次注册的
工作区限制
,或者计算某个研讨会的参与者总数,然后将其减去
工作区限制
(不更新
工作区限制
)是否更快


例如,我将检查某个车间的剩余插槽。

这取决于您对车间限制的严格程度。如果禁止过度注册,则更新WorkshopLimit是保护该规则的简单方法。在事务中注册和更新WorkshopLimit,如果WorkshopLimit小于0,则回滚事务并取消注册


如果允许过度注册,两种解决方案都是可以接受的。好像你没有庞大的数据量,性能差异应该很小。

从id=42的车间运行简单的select语句(如
select WorkshopLimit FROM workshop),从
datarow
读取简单的值,检查车间中剩余的开放座位,比使用更复杂的查询(如
COUNT(…)更快
随时根据需要计算剩余的开放座位

但是,如果您在每次注册时更新
workshops
表中的剩余开放座位值,或者如果您在需要时动态计算剩余座位,则很可能与速度无关。它们都太快,与您使用一种或另一种方法的决定无关


TL;DR=这不重要。

计算某个研讨会的参与者总数,然后将其减去车间限制(不更新车间限制)。