It feels wrong to have a database entry about this in every group membership. I'd instead add a column in Group to keep the date of the last join request. If last join request is more recent than a day ago, then send out emails. What do you think?