系统设计2:数据库设计
阅读材料:
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
设计一个用户系统
- 场景
- 注册/修改/删除账号
- 登陆登出
- session过期:
- session标记用户和服务器的会话
- 用户使用多个连接时有多个session
- 客户端保持session id
- 有服务就有session,不一定要登录
- 记住登录7天->session过期
- 删除检查:lazy策略
- session过期:
- 余额/VIP
- 约束
- 总用户: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
- 应用
- 代理
- 账户服务
- 数据
- 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:数据库设计相关推荐
- Peekaboo——项目系统设计与数据库设计
这个作业属于哪个课程 软件工程实践2022年春-F班 这个作业要求在哪里 团队作业三-概要设计与数据库设计 这个作业的目标 继续完善设计类图,设计好系统和数据库.制定好计划和分工: 其他参考文献 cs ...
- 团队作业第五次—项目系统设计与数据库设计
作业描述 所属课程 软件工程1916|W(福州大学) 作业要求 团队作业第五次-项目系统设计与数据库设计 团队名称 待就业六人组 作业目标 宏观的对系统的整体结构设计,并在此基础上,进行数据库设计 系 ...
- 项目系统设计与数据库设计(那周余嘉熊掌将得队)
作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:团队作业第五次-项目系统设计与数据库设计 团队名称: 那周余嘉熊掌将得队 作业目标:进行数据库设计和系统设计,完善类图,绘制评审表 团队 ...
- 系统设计和数据库设计答辩问题汇总
总体来说大家的系统说明书格式普遍存在问题,格式不统一,也和作业规定中的没有具体明确有关系.有若干团队项目系统说明书完成度不高. 那周余嘉熊掌将得队 追光的人 echo 基于云的胜利冲锋队 待就业六人组 ...
- SSO单点登录系统设计,数据库设计文档
SSO 系统设计文档 1 .SSO 数据库设计 1.1 SSO用户表 ssoUsers 字段名 中文名称 字段类型 说明 ssoUserId 序号 Int(4) PK,自增 ssoLoginId SS ...
- 高并发下的系统设计(偏数据库设计)
高并发完毕数据库设计是要结合不同的应用场景的,本文主要涉及到一下问题: 1.对数据库表的字段訪问比較均衡,业务导向明显(网上商城,多条业务线): 2.对数据库表的字段訪问比較均衡,业务导向不明显(对单 ...
- 数据库篇(数据库设计) ---权限系统设计
目录 概述 菜单功能权限控制 用户-权限 用户-角色-权限 用户-用户组-角色-权限 数据权限控制 概述 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源, ...
- 14 个实用的数据库设计技巧,一次性教给你!
目录 原始单据与实体之间的关系 主键与外键 基本表的性质 范式标准 通俗地理解三个范式 要善于识别与正确处理多对多的关系 主键PK的取值方法 正确认识数据冗余 E--R图没有标准答案 视图技术在数据库 ...
- 数据库设计原则【转】
1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体. 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证 ...
- 数据库设计中的14个技巧
数据库设计中的14个技巧 选择自 sirfei 的 Blog 1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对 应且只对应 ...
最新文章
- [初级]深入理解乐观锁与悲观锁
- 超全大厂数据结构面试
- 【DIY】简单粗暴低成本Arduino四轴机械臂方案,创客教育学习使用舵机首选方案!...
- node 实现Token状态登录 及数据库增删改查
- obs 推流编码在哪设置_OBS录屏软件
- HTML5 Canvas 画纸飞机组件
- Bootstrap-table 部分浏览器显示不出来
- 【LeetCode】【数组】题号:*442,重复元素出现两次
- virt_to_page
- MyEclipse10安装properties文件插件
- t分布(Student t distribution)——正态分布的小样本抽样分布
- Android 万能刷新控件
- 最新Java技术栈面试详细完整
- 完成一份diy计算机组装方案,DIY新手电脑装机教程:自己组装电脑全过程详细图解教学...
- 独家揭秘:暴利的黑帽SEO行业
- 《孙子兵法与经理人统帅之道》读后感
- CEPH OSD_SCRUB_ERRORS 错误处理
- linux窗口按钮,在KDE Linux中配置窗口装饰按钮 | MOS86
- 高级气泡图——R语言简单实现
- 管理 - STAR法则
热门文章
- 计算机二级怎么让试题变简单,如何有效利用历年真题备考全国计算机等级考试?...
- is this mysql server_mysql出现is not allowed to connect to this mysql server异常的解决办法
- dp-整数划分问题(理论分析)
- c++如何快速写出get set_如何快速写出产品文案?(4大核心方法)
- android 替代map,Android为什么推荐使用SparseArray来替代HashMap?
- kotlin和python哪个好_对比 Go 语言,Kotlin 有什么优势和劣势?
- 马尔科夫决策过程(MDP) : BlackJack (MC-Off Policy)
- PySpark-Recipes : I/O操作(txt, json, hdfs, csv...)
- php定时器使用,PHP实现javascript的定时器
- 利用kd树实现最近邻搜索