不同用户等级可以观看不同课程视频如何设计最好?

需求

H5视频课程应用,不同级别的用户只能观看有权限观看的视频

如:一部分管理课程只有管理层的用户可以观看

问题

用户等级和课程指定权限这两块如何设计最好

阅读 1.5k
1 个回答

一、树状权限

根据实际情况来,如果只是简单区分,普通用户 -> VIP -> SVIP -> 管理员,这种层级分明,上级同时拥有下级权限的

那么直接分别为这几个权限设置一个权重值。逐层递加 1000,即

权限权重
普通用户1000
VIP2000
SVIP3000
管理员10000

然后在视频加上一个权限字段,比如这视频仅 VIP 可见,那查询时直接查 权限字段大于等于 2000 的就好了。

BIT 实现

如果较为复杂的权限设计,角色 A、 角色 B、 角色 C,多种角色没有继承关系,那可能就要复杂一点儿,如果只是以够用的情况去设计,那就可以把权限字段设计成 bit ,然后使用位运算的方式来确定权限

以上设计仅从查询方便的角度来设计,且应该避免使用,因为在数据量大时可能会造成慢查询。

分表联表实现

你也可以创建一个一对多表,比如视频权限表,分别存视频和权限的标识,然后查询时根据使用子查询获取用户拥有的权限进行过滤(SQL 可能会复杂)

同样,在大量数据查询时,使用不当可能会存在慢查询。

对于过于复杂的权限设计,你可能需要 RBAC,或者在代码业务中判断用户权限,这样效率更为高效,但是可能会造成一些问题,比如分页时可能数据量不如预期,需要额外处理等。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题