系统设计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

设计一个用户系统

  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/

posted on 2017-04-09 16:06  一个后端狗  阅读(695)  评论(0)    收藏  举报

导航