说明
发朋友圈的时候,可以公开、对自己可见、对部分人可见、对部分人不可见,微信的数据库设计是怎样的我不太清楚,下边的方案是根据我们自己的业务设计的,也能实现这种需求。
设计方案
方案一
在时间线表增加三个字段:权限类型、用户列表。当选择对谁可见或不可见时,把用户的id列表存到用户列表列表,用下面的查询语句查出某个用户关注的所有孩子的最新100条数据。
select
*
from
`time_line`.`tb_time_line`
where
`child_id` in (
'62a1464fcaeb00e3', 'f2bd17a138a2cabf'
)
and (
`visible_type` = '1'
or (
`visible_type` = '3'
and `user_list` like 'a129366c3a06f7d5'
)
or (
`visible_type` = '4'
and `user_list` not like 'a129366c3a06f7d5'
)
)
and `time_line`.`tb_time_line`.`deleted_at` is null
order by
`create_time` desc
limit
100 offset 0
方案二
时间线表增加一个权限类型字段,新建一个表存放某条时间线对某人可见或不可见,这个表有两个字段:user_id、time_line_id,联合主键。下面的语句查询同样的数据。
select
*
from
`time_line`.`tb_time_line`
where
`child_id` in (
'62a1464fcaeb00e3', 'f2bd17a138a2cabf'
)
and (
`visi