通过联系人DOB更新“年龄组ID” - MySQL + PHP

时间:2012-09-20 23:21:00

标签: php mysql cakephp

我想知道如何解决以下问题的最佳方式:

我有一个名为'contacts'的表,在这个表中我有2个字段,contacts.age_group_id和contacts.DOB。 DOB字段定期填写,但age_group_id不是,并且当联系人根据当前日期及其DOB变老时,它也会发生变化。

age_group表如下:

age_group.id - int age_group.name - varchar(例如65-70岁 - 退休数据库)

示例:

id:1 - 姓名:65-70岁 id:2 - 姓名:71-75岁 id:3 - 姓名:76-80岁

如果需要,我可以轻松地将更多字段放入age_group表中,但我需要不断更新contact.age_group_id字段,以使其对导出的报告是最新的。

有关如何在某种功能中执行此操作的任何建议吗?

我正在使用cakephp,但它更像是一般的PHP / MySQL问题。

由于

1 个答案:

答案 0 :(得分:0)

我最初的想法是将min_age和max_age放在age_group表中,但这需要您计算用户的年龄,然后将其加入age_group表。计算每一行都不是很好(并且无法编入索引)。

所以,这里有两个想法:

  1. 将每个范围的开始日期和结束日期存储在agr_group表中,因此65年前(今天)将是19/9/19。将其与用户的DOB进行比较。好消息是它会很快,但你必须每天重新生成日期。
  2. 计算并存储用户的年龄。同样,速度很快,但您每天必须重新生成更多数据。
  3. 哦,第三个想法是等待一个更好的主意:)