随着工作经验的积累,我日益感觉到,对一名程序员来说,拥有良好的数据库设计能力是很重要的,甚至是最重要的。
程序员界有一句著名的话
Talk is cheap, show me the code
把这句话演变一下,就成了
Code is boring, show me the data structure
面对同样的数据结构,一百个程序员会写出一百种风格的代码。看别人写的代码,往往是很boring的。
数据结构为何如此重要
代码是围绕数据结构运行的。
客户端展现的动态数据,都是存储在数据库中,这对程序员来说一定是常识了。
为了便于阐述,我们拿简书的文章页面作为样板。
文章的作者、标题、正文、评论、喜欢等等,只要你打开任意两篇文章,两个页面不一样的地方,几乎都是因为在数据库中存储的内容不同。
良好的数据结构可以提升性能,使代码变得简单、清晰。数据结构清晰了,围绕着数据运行的代码自然就清晰了。
数据库设计需考虑的因素
提到数据库设计原则,首先会想到第一、第二、第三范式,这些理论能了解最好,本文不再赘述了。
从实践的角度面对一个具体的应用场景,设计数据库时应遵循哪些原则?
满足当前需求
数据结构的设计要能达到应用场景的要求,这是最基本的。举个例子,文章的正文存储在了数据表中的某