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

172 天前
 chesha1
比如一个互联网应用,比如 V2EX ,知乎,stackoverflow 这种网站,需要的功能是类似的,而且数据主要是文本数据。

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

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

不满足的情况下,有研发能力就自己魔改,牛的就自己开发一个数据库。比如 GraphQL fb 倒腾出来。
hyperbin
87 天前
@datoujiejie221 CAP 就是个真空里的球形鸡,太过理想没啥实践意义,PACELC 更加务实

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/993048

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX