2012-09-20 44 views
1

我不知道如何将解决以下的最佳方法:更新“年龄组ID”通过接触DOB - 的MySQL + PHP

我有一个名为“联系人”表,该表中我有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问题。

感谢

回答

0

我最初的想法是把MIN_AGE和MAX_AGE在AGE_GROUP表,但这需要你来计算用户的年龄,然后说一起到AGE_GROUP表。对每一行计算都不是很好(也不能被索引)。

因此,这里有两个想法:

  1. 店开始日期和在agr_group表中的每个范围的结束日期,因此65年前(今天)是1947年9月20日。将其与用户的DOB进行比较。好消息是,它会很快,但你必须每天重新生成日期。
  2. 计算并存储用户的年龄。再次,快速,但你必须每天重新生成更多的数据。

哦,第三个想法是等待一个更好的主意:)