阅读材料:

unique key

https://en.wikipedia.org/wiki/Unique_key#Defining_primary_keys

增删改查

https://en.wikipedia.org/wiki/Create,_read,_update_and_delete

如何存储密码

http://zhuoqiang.me/password-storage-and-python-example.html

https://www.zhihu.com/question/20479856

session

http://fred-zone.blogspot.com/2014/01/web-session.html

http://machinesaredigging.com/2013/10/29/how-does-a-web-session-work/

http://blog.csdn.net/fangaoxin/article/details/6952954

继承

http://c.biancheng.net/cpp/biancheng/view/90.html

https://www.go4expert.com/articles/inheritance-cpp-vs-java-t22245/

https://www.codeproject.com/articles/772238/diving-in-oop-polymorphism-and-inheritance-part

事务

http://karenten10-blog.logdown.com/posts/192629-database-transaction-1-acid

http://coolshell.cn/articles/10910.html

https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying

ACID

http://in355hz.iteye.com/blog/2029963

http://blog.csdn.net/duxingxia356/article/details/43992015

设计一个用户系统

  1. 场景

    • 注册/修改/删除账号
    • 登陆登出
      • session过期:

        • session标记用户和服务器的会话
        • 用户使用多个连接时有多个session
        • 客户端保持session id
        • 有服务就有session,不一定要登录
        • 记住登录7天->session过期
        • 删除检查:lazy策略
    • 余额/VIP
  2. 约束
    • 总用户:100000000
    • 日活:1000000
    • 预测三个月后日活:1000000*2
    • 注册率:1%
    • 注册人数:20000
    • 登录频率:15%
    • 平均登录次数:1.2
    • 日登陆次数:1000000*15%*1.2 = 360000
    • 平均登录时间频率:360000/86400=4.2/s
    • 正常登录频率:8.4/s
    • 峰值登录频率:8.4*5=42/s
  3. 应用
    • 代理
    • 账户服务
  4. 数据
    • uid //unique
    • name
    • pwd //密文,防拖库。SHA1 MD5 单向不可逆
    • 伪删除标志位
    • session list //分离成为单独的表
    • 索引
      • hash:不支持range查询
      • B+树:支持range,磁盘友好,b叉树
    • 增删改查操作
    • 用户状态机
    • 定长:数据对齐,空间浪费

支付系统

  • 数据

    • uid
    • money
    • vip expire time
    • 充值
    • 买东西
    • 问题1:崩溃导致不一致->事务transaction
    • 问题2:重复用户、影子用户->外键/检查器
    • 问题3:并发导致数据不一致->读写锁(事务?)
    • 问题4:蓝屏问题:复制、热备份
      • 逻辑视图与物理视图:多机备份

ACID

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

作业:http://www.jiuzhang.com/qa/88/

转载于:https://www.cnblogs.com/zcy-backend/p/6685063.html

系统设计2:数据库设计相关推荐

  1. Peekaboo——项目系统设计与数据库设计

    这个作业属于哪个课程 软件工程实践2022年春-F班 这个作业要求在哪里 团队作业三-概要设计与数据库设计 这个作业的目标 继续完善设计类图,设计好系统和数据库.制定好计划和分工: 其他参考文献 cs ...

  2. 团队作业第五次—项目系统设计与数据库设计

    作业描述 所属课程 软件工程1916|W(福州大学) 作业要求 团队作业第五次-项目系统设计与数据库设计 团队名称 待就业六人组 作业目标 宏观的对系统的整体结构设计,并在此基础上,进行数据库设计 系 ...

  3. 项目系统设计与数据库设计(那周余嘉熊掌将得队)

    作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:团队作业第五次-项目系统设计与数据库设计 团队名称: 那周余嘉熊掌将得队 作业目标:进行数据库设计和系统设计,完善类图,绘制评审表 团队 ...

  4. 系统设计和数据库设计答辩问题汇总

    总体来说大家的系统说明书格式普遍存在问题,格式不统一,也和作业规定中的没有具体明确有关系.有若干团队项目系统说明书完成度不高. 那周余嘉熊掌将得队 追光的人 echo 基于云的胜利冲锋队 待就业六人组 ...

  5. SSO单点登录系统设计,数据库设计文档

    SSO 系统设计文档 1 .SSO 数据库设计 1.1 SSO用户表 ssoUsers 字段名 中文名称 字段类型 说明 ssoUserId 序号 Int(4) PK,自增 ssoLoginId SS ...

  6. 高并发下的系统设计(偏数据库设计)

    高并发完毕数据库设计是要结合不同的应用场景的,本文主要涉及到一下问题: 1.对数据库表的字段訪问比較均衡,业务导向明显(网上商城,多条业务线): 2.对数据库表的字段訪问比較均衡,业务导向不明显(对单 ...

  7. 数据库篇(数据库设计) ---权限系统设计

    目录 概述 菜单功能权限控制 用户-权限 用户-角色-权限 用户-用户组-角色-权限 数据权限控制 概述 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源, ...

  8. 14 个实用的数据库设计技巧,一次性教给你!

    目录 原始单据与实体之间的关系 主键与外键 基本表的性质 范式标准 通俗地理解三个范式 要善于识别与正确处理多对多的关系 主键PK的取值方法 正确认识数据冗余 E--R图没有标准答案 视图技术在数据库 ...

  9. 数据库设计原则【转】

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体. 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证 ...

  10. 数据库设计中的14个技巧

    数据库设计中的14个技巧     选择自 sirfei 的 Blog 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应 ...

最新文章

  1. [初级]深入理解乐观锁与悲观锁
  2. 超全大厂数据结构面试
  3. 【DIY】简单粗暴低成本Arduino四轴机械臂方案,创客教育学习使用舵机首选方案!...
  4. node 实现Token状态登录 及数据库增删改查
  5. obs 推流编码在哪设置_OBS录屏软件
  6. HTML5 Canvas 画纸飞机组件
  7. Bootstrap-table 部分浏览器显示不出来
  8. 【LeetCode】【数组】题号:*442,重复元素出现两次
  9. virt_to_page
  10. MyEclipse10安装properties文件插件
  11. t分布(Student t distribution)——正态分布的小样本抽样分布
  12. Android 万能刷新控件
  13. 最新Java技术栈面试详细完整
  14. 完成一份diy计算机组装方案,DIY新手电脑装机教程:自己组装电脑全过程详细图解教学...
  15. 独家揭秘:暴利的黑帽SEO行业
  16. 《孙子兵法与经理人统帅之道》读后感
  17. CEPH OSD_SCRUB_ERRORS 错误处理
  18. linux窗口按钮,在KDE Linux中配置窗口装饰按钮 | MOS86
  19. 高级气泡图——R语言简单实现
  20. 管理 - STAR法则

热门文章

  1. 计算机二级怎么让试题变简单,如何有效利用历年真题备考全国计算机等级考试?...
  2. is this mysql server_mysql出现is not allowed to connect to this mysql server异常的解决办法
  3. dp-整数划分问题(理论分析)
  4. c++如何快速写出get set_如何快速写出产品文案?(4大核心方法)
  5. android 替代map,Android为什么推荐使用SparseArray来替代HashMap?
  6. kotlin和python哪个好_对比 Go 语言,Kotlin 有什么优势和劣势?
  7. 马尔科夫决策过程(MDP) : BlackJack (MC-Off Policy)
  8. PySpark-Recipes : I/O操作(txt, json, hdfs, csv...)
  9. php定时器使用,PHP实现javascript的定时器
  10. 利用kd树实现最近邻搜索