我如何禁用一些mysql数据集为用户指定的时间框架在我的webapp和自动恢复它



我正在开发一个web应用程序来管理mysql数据库。到目前为止,这项工作进展顺利。

现在我需要一个功能来停用一些数据集的时间框架,用户可以在web应用程序中选择。

停用后:数据集在数据库中不应该是活动的,但用户应该能够随时恢复数据集。(我将创建一个页面:"Deactivated")

如果用户不恢复数据集。然后,当用户指定的时间范围结束时,应自动恢复数据集。

我怎么能建立这个功能,并禁用一些数据集的时间框架和恢复后再次?

希望你能理解并帮助我;)

我的意思是与dataset=行在一个数据库

您无法在MySQL级别解决此问题。这个数据库引擎不能识别你所描述的数据集和时间框架(据我所知)。

因此,您必须在应用程序级别解决这个问题。
我不知道你的数据库是什么结构,所以假设你把数据存储在名为dataset的表中。


1。部分:停用

我需要一个功能禁用一些数据集

一个潜在的解决方案是添加一个表dataset国旗。命名为active。参考MySQL Bool

此页

我将创建一个页面:"Deactivated"你可以通过这个查询获取数据

SELECT *
FROM dataset
WHERE active = false;

此更新的结果(添加标志)。你应该更新所有现有的查询的where子句:WHERE ... AND active = true
为例,当你抓取的数据用户ID 10,这个查询的方法是:

SELECT * 
FROM dataset
WHERE user_id = 10
AND active = true;

2。part:时间框架

这部分,我建议使用另一个dataset表中的列——让我们的名字它activation_date

那么,这里的想法是什么?
在这一列中,您将存储该行何时再次激活。

对于激活数据,您需要一个作业调度框架。每个午夜,一个后台进程执行这个查询。

UPDATE dataset
SET active = true
WHERE activation_date >= CURRENT_DATE();

当然,你可以使用更细粒度的时间;或者在其他时间激活你的工作。这取决于需求。

作业调度框架注意事项。对于Java,它可以是Quartz。我不确定你用的是哪种编程语言;我猜,它有一个类似Quartz的等效工具。