目录)
1. RBAC 权限系统设计
1.1 什么是 RBAC
基于角色的访问控制,用户→角色→权限,是企业级系统最标准权限模型。
1.2 核心表结构(必背)
- 用户表(user)
- 角色表(role)
- 权限表(permission)
- 菜单表(menu)
- 按钮表(button)
- 用户-角色关联表
- 角色-权限关联表
1.3 权限控制粒度
- 菜单权限(显不显示)
- 页面权限(能不能进)
- 按钮权限(能不能点)
- 接口权限(能不能调)
- 数据权限(能看哪些数据)
1.4 医疗/基因系统特殊权限
- 分级审核:普通用户 → 审核员 → 管理员 → 超级管理员
- 数据隔离:只能看自己/本部门数据
- 操作留痕:所有敏感操作必须记录日志
- 数据脱敏:手机号、身份证、报告部分隐藏
1.5 面试回答模板
我采用 RBAC 五级权限模型,支持菜单、页面、按钮、接口、数据粒度控制,并结合医疗行业实现分级审核与操作审计。
2. 0→1 系统搭建完整流程
2.1 需求阶段
- 需求对接、需求分析、痛点梳理
- 输出:需求文档、原型图、流程图
- 与业务/甲方确认范围边界
2.2 架构设计阶段
- 技术选型:Python/Django/FastAPI/Vue/MySQL/Redis
- 架构模式:前后端分离
- 数据库设计:E-R图、字段、索引、约束
- API 设计:接口文档、参数、返回值
2.3 开发阶段
- 后端:模型、接口、权限、异步任务
- 前端:页面、组件、权限控制、请求封装
- 联调:接口对接、异常处理、日志
- 测试:单元测试、业务测试、压力测试
2.4 部署上线阶段
- Docker + Compose 容器化
- Nginx + HTTPS 代理
- 监控、日志、备份
- 上线、灰度、回滚方案
2.5 迭代维护阶段
- Bug 修复、功能迭代
- 性能优化、扩容
- 文档沉淀、知识传承
3. 高并发架构设计
3.1 缓存优化
- 热点数据放 Redis
- 防止穿透/击穿/雪崩
- 减轻 DB 压力
3.2 异步化
- 耗时任务全部异步:Celery
- 报告生成、消息推送、文件导出
- 接口快速返回,不阻塞
3.3 分库分表(大流量必备)
- 水平拆分、垂直拆分
- 分布式ID
- 解决单表性能瓶颈
3.4 限流、熔断、降级
- 限流:防刷、防攻击
- 熔断:第三方挂了不拖垮自身
- 降级:核心功能可用,非核心关闭
3.5 读写分离
- 主库写、从库读
- 提高查询并发能力
4. 数据一致性解决方案
4.1 本地事务
- @transaction.atomic
- 要么全成功,要么全失败
4.2 分布式事务
- TCC、SAGA、最终一致性
- 适用于跨系统、跨服务
4.3 最终一致性(最常用)
- 消息队列、重试、对账
- 保证数据最终一致即可
4.4 并发安全
- 分布式锁、乐观锁、版本号
- 防止超卖、重复提交、数据覆盖
4.5 数据校验机制
- 前端校验 + 后端校验
- 定时对账、数据修复脚本
- 日志 + 审计 + 可追溯
5. 面试高频扩展知识点
5.1 如何做技术选型
- 业务复杂度
- 并发量、数据量
- 团队技术栈
- 维护成本、扩展性
5.2 高可用设计
- 无单点
- 健康检查、自动重启
- 熔断、限流、降级
- 备份、秒级恢复
5.3 系统可扩展性设计
- 模块化、组件化、插件化
- 配置化,不硬编码
- 预留第三方对接接口
- 支持横向扩容
5.4 面试必背总结
系统设计 = 流程规范 + 架构合理 + 高并发 + 高可用 + 数据安全 + 可扩展 我具备从0到1完整落地能力,擅长医疗/基因系统权限、并发、数据一致性设计。
评论区