暂且可以把用户分为以下几个属性
1、性别;
2、城市;
3、年龄;公告A:针对男性、城市为北京、年龄在20~30岁之间的人显示;
公告B:针对女性、城市为上海、年龄在15~20岁之间的人显示;
...
...
...
...
公告N:针对城市为北京、年龄在15~25岁之间的人显示;
这个我应该用什么逻辑去处理呢? 求思路;
1、性别;
2、城市;
3、年龄;公告A:针对男性、城市为北京、年龄在20~30岁之间的人显示;
公告B:针对女性、城市为上海、年龄在15~20岁之间的人显示;
...
...
...
...
公告N:针对城市为北京、年龄在15~25岁之间的人显示;
这个我应该用什么逻辑去处理呢? 求思路;
公告A
}
elseif(性别==女&& 城市==上海&& 年龄>= 15 && 年龄<=20){
公告B
}
elseif(条件){
公告C
}
'city'=>'beijing',
'age'=>20,
'age2'=>30)
把规则存入一个表,然后建立消息表,每条消息附上一个规则id,显示消息给用户的时候根据规则判断
首先每条公告,都有个类型。例如A,B,C,D然后根据每个类别设定条件。
例如:公告A:针对男性、城市为北京、年龄在20~30岁之间的人显示;
检查一下用户的资料是否符合,如果符合则显示。不过这样不好,因为每次访问页面都要重新搜寻判断一次。最好是加一个用户的公告表。
结构如下:
id ,user_id, content,addtime,lastmodify如果后台添加一个公告。则先搜寻符合这个公告访问的用户id,然后把公告内容插入用户公告表。例如有10人匹配,则插入10条记录,user_id不同而已,这样虽然会有很多条记录,但搜寻时就方便很多了。当用户要显示公告时,只需要select * from table where user_id=xxx即可。