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

  • 相关阅读:
    今天18:40分左右一部价值500多块捷安特自行车被盗!
    利用ASP.net上传文件
    _desktop.ini
    Visual Studio .NET 设置移植工具
    审计厅的项目终于可以告一段落了
    Word2CHM Assistant(Word2CHM助手)V2.1.0 破解版
    最近比较烦!
    delphi 中 Format 用法总汇
    谈谈公司管理及需求方面的问题
    [待续]SQLSERVER无法访问远程服务器问题
  • 原文地址:https://www.cnblogs.com/zcy-backend/p/6685063.html
Copyright © 2020-2023  润新知