V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chesha1
V2EX  ›  数据库

互联网服务的数据库设计有无最佳范式?

  •  
  •   chesha1 · 161 天前 · 1459 次点击
    这是一个创建于 161 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如一个互联网应用,比如 V2EX ,知乎,stackoverflow 这种网站,需要的功能是类似的,而且数据主要是文本数据。

    这个时候,应该用哪些数据库,数据库中用什么表,或者什么结构,每个表里面应该有哪些些字段,在互联网已经发展了这么多年的情况下,是不是应该有一个最优的系统设计,对于文本内容为主的论坛类网站(比如 V2EX ,知乎,贴吧等)能够满足使用尽量少的硬件资源,并且性能出色可拓展性好

    这种问题比较偏工程吧,找了一圈也没找到相关内容,请教一下 v 站的大佬们
    11 条回复    2024-02-12 07:48:10 +08:00
    go522000
        1
    go522000  
       160 天前   ❤️ 1
    曾经也找过,没有。
    最后只找到一本已经不再出版的书《 SQL 反模式》
    go522000
        2
    go522000  
       160 天前
    @go522000 我搞错了,刚搜索了一下,这书还有出售。
    xiaoriri666
        3
    xiaoriri666  
       160 天前
    这属于系统架构层面了,一个领域的相关解决方案,还得实际需求实际分析
    kamichan
        4
    kamichan  
       160 天前
    相似的底层系统可以,业务系统很多都不同
    GeekGao
        5
    GeekGao  
       160 天前
    就是 2NF\3NF 规范合理根据业务使用,不需要学术课本那么教条。
    其他就是分库分表、高可用等 DB 维护问题。不同技术栈和架构在工程上很多细节要根据具体的案例来分析了,没法总结个标准。
    dayeye2006199
        6
    dayeye2006199  
       160 天前
    一个流派就是经典的关系型数据库设计 -- 上面说的 2NF 3NF
    一个流派就是阿里代表的,数据库只做存储功能的一把梭流派 -- 什么从不用外键,不能 join 之类的技巧都是从这边来的
    kuituosi
        7
    kuituosi  
       160 天前
    数据量小就是 3nf ,数据量大就冗余。至于最优没有什么事最优的,换一个公司换一个需求就不是最优了
    veike
        8
    veike  
       159 天前
    我个人认为,如果把范式设计和反范式设计放在一起就是没有范式,只是一些数据库设计技巧罢了,根据实际情况设计就可以。
    datoujiejie221
        9
    datoujiejie221  
       159 天前
    可以看看著名的 CAP 定理,分布式系统下数据的一致性、可用性和分区容忍性不可能同时满足,所以要根据具体业务来做出权衡。
    互联网业务对 AP 要求较高,所以用反范式牺牲了一致性( C )。
    nodejsexpress
        10
    nodejsexpress  
       159 天前
    应该没有最佳的。根据具体业务折腾开源库,或者商业数据库。

    不满足的情况下,有研发能力就自己魔改,牛的就自己开发一个数据库。比如 GraphQL fb 倒腾出来。
    hyperbin
        11
    hyperbin  
       75 天前 via Android
    @datoujiejie221 CAP 就是个真空里的球形鸡,太过理想没啥实践意义,PACELC 更加务实
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2834 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:31 · PVG 14:31 · LAX 23:31 · JFK 02:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.