我该如何检查数据库中的某个用户何时转到某个年龄

时间:2017-06-10 12:23:59

标签: c# sql database user-management

我正在开展一个项目,当用户转向某个年龄时,我需要执行某项操作。

当用户年满12岁时,需要创建一个帐户,当用户满18岁时,需要禁用家长监督。

检查用户数据库中的用户是否达到特定年龄的最佳方法是什么。我是否创建了一个服务,检查特定年龄的所有用户并每天早上运行。或者是否有其他解决方案可以解决这个问题。

注意:

程序在服务器上运行,因此它日夜运行。

4 个答案:

答案 0 :(得分:2)

创建一个存储过程,该过程返回今天生日为X岁的用户列表。然后,您每天都可以将年龄参数(X)传递给存储过程,以获取在该日转换该年龄的用户列表。

然后,您只需要一个日常工作来运行具有不同参数的存储过程(例如12和18),并使用返回的用户列表执行任何操作。

答案 1 :(得分:1)

检查每个用户年龄会花费太多资源。所以我认为更好的设计是创建一个单独的表:

ID | UserID | Date     | Age
1  |   32   | 1.1.2024 | 12
2  |   32   | 1.1.2030 | 18
3  |   42   | 2.2.2021 | 18

创建用户后,他的第12个和第18个生日的日期将记录到此表中。然后,该服务每隔2小时运行一次,并检查此表是否已通过日期。如果找到,则调用事件并删除记录。

答案 2 :(得分:1)

如果根据技术任务,客户帐户的活动并不重要 - 意味着您无论如何都需要监控年龄 - 我建议您使用字段whatever PrimaryKey, CustomerID ..., CreateAccountDate, ParentalSupervisionDate创建新表(添加到数据库)。

然后创建一个新任务和2个新stored procedure(SP):...Add......Check...其中

...Add... SP将针对年龄小于18岁的人创建帐户,并在您需要采取行动时填写相应字段和日期。

实施例。客户生日是... 2010年。你填写字段" CreateAccountDate"与... 2022和字段" ParentalSupervisionDate"与...... 2028。

...Check... SP每晚会检查适当的日期(与当前日期进行比较)和返回您应修改的客户帐户。

创建运行一次的temp SP以填充新表,其中包含年龄未满18岁的现有客户的数据。

然后将temp SP...Check... SP添加到该新任务,运行任务,并在完成后从任务中删除临时SP。首先应该运行temp SP。 (不要修改现有的表 - 非常糟糕的做法 - 在你的情况下不需要)

最后,您将获得一项服务,该服务将在帐户创建时运行...Add... SP,以及将每晚运行的任务...Check... SP将返回第二项服务(或其他)的列表客户(客户账户 - 更好)必须修改(通常使用DataSet)。

当然不需要删除任何东西 - 这也是一个好方法。

答案 3 :(得分:0)

那里;没有足够的信息。如果没有什么特别的事情要做 - 我的意思是,从某个年龄开始,你不需要用钱或任何涉及金钱操作的任何特定金融业务 - 无需一直检查年龄。 我想你最好创建一个

  

使用事件处理程序的服务

客户的任何(行为)“活动”(不包括客户刚刚检查他的账户,发生了什么),检查客户的年龄和相应的响应。客户年龄超过18岁后取消订阅。

也可能发生客户在任何行动之前更改银行 - 并自动为此类客户做smth - 是一项不必要的工作。此外,每天检查所有客户都不是正确的事。