1

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

我有一个名为“联系人”的表,在这个表中我有 2 个字段,contacts.age_group_id 和 contacts.DOB。DOB 字段会定期填写,但 age_group_id 不是,而且它会随着联系人年龄的增长而改变,具体取决于当前日期和他们的 DOB。

age_group 表如下:

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

样本:

身份证:1-姓名:65-70岁身份证:2-姓名:71-75岁身份证:3-姓名:76-80岁

ETC

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

有什么建议我可以在某种功能中做到这一点吗?

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

谢谢

4

1 回答 1

0

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

所以,这里有两个想法:

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

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

于 2012-09-20T23:34:48.190 回答