基于成员和一年中的月份来映射表格的好方法

时间:2018-05-16 20:09:14

标签: php sql angularjs

我需要制作这样的简单表格

enter image description here

此表代表每个月的年度会员身份,它非常简单,那里没有高级资料,会员资格状态由管理员手动更新(当会员付费时,该月的管理员更新状态)。

从数据库的角度来看,我有两个简单的表:

enter image description here

正如您所看到的,我有一个包含member_id和date的会员资格表,以及付款时正在填写该表格。

所以我的问题是:映射数据以匹配该表的好方法是什么?

我正在考虑这样的事情(例如我想要2017年的所有成员数据)

select m.*,
        GROUP_CONCAT(MONTH(ms.date)) as dates 
from members m 
    left join membership ms on m.id = ms.member_id 
where ms.date >= 01-01-2018 
and ms.date <= 12-31-2018

这个查询应该返回带有日期数组的成员列表(数组数组,每个数字代表月份),所以在UI方面,我可以根据它生成这个表视图?对此有任何建议,任何人都有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您的查询似乎很好。然后,您可以使用它来确定日期数组中是否存在月份,方法是使用日期数组上的includes函数。

例如,要检查二月份是否应该有一个X,您需要检查dates.includes(2)。如果为true,请放置X,否则留空。