Mysql 哪些是快速学习关系数据库设计的好参考?

Mysql 哪些是快速学习关系数据库设计的好参考?,mysql,relational-database,Mysql,Relational Database,因此,假设您已经知道如何使用数据库进行基本操作,例如创建数据库……),并且您了解视图和连接等基本概念……以及基本SQL语法……但是您觉得您的解决方案遵循“最佳实践”甚至“正确”,这让您感到不舒服 对于试图建立数据库驱动的网站的人来说,你在哪里可以读到一些相对严格但直截了当的东西?什么时候/为什么连接不好,什么时候缓存,什么类型的查询比较昂贵,可能有一些练习和提示/解决方案?还有一点数学知识 像电子书或课堂讲稿之类的东西可能是最合适的,但欢迎任何建议 现在我知道这并不是直接针对MySQL的,但是

因此,假设您已经知道如何使用数据库进行基本操作,例如创建数据库……),并且您了解视图和连接等基本概念……以及基本SQL语法……但是您觉得您的解决方案遵循“最佳实践”甚至“正确”,这让您感到不舒服

对于试图建立数据库驱动的网站的人来说,你在哪里可以读到一些相对严格但直截了当的东西?什么时候/为什么连接不好,什么时候缓存,什么类型的查询比较昂贵,可能有一些练习和提示/解决方案?还有一点数学知识

像电子书或课堂讲稿之类的东西可能是最合适的,但欢迎任何建议

现在我知道这并不是直接针对MySQL的,但是这本书很容易理解,并且在总体设计方面提供了很多信息。我还假设有一些基本的信息从一台服务器传输到另一台服务器。(这本书既可以作为电子书,也可以作为普通书)


希望这能有所帮助。

问题在于,数据库中没有任何东西是经过裁剪和干燥的(就像在其他任何地方一样)

这完全取决于上下文

大多数的例子通常是玩具问题,它们可能真的适合你的实际情况,也可能不适合你的实际情况

一切视情况而定

查询中的连接很少会像执行额外的数据库访问那样性能差。毕竟,如果您查看执行计划,它将告诉您数据库基于键/索引等检索行的最有效方式。除非您的SQL错误或数据库设计特别复杂且不规范(允许多条路径),优化器不太可能做出比您的应用程序代码更糟糕的决策,而且它将在一个地方完成所有这些

为了理解数据库设计,我将向您指出

  • 与比你更有经验的人一起工作
  • 犯很多错误。。。一定要向他们学习
  • 开始阅读有关关系数据库的书籍
  • 了解特定dbms(特别是优化器)的内部详细信息
  • 唯一真正的捷径是#1

    一旦您开始对建模有信心,就开始利用特定dbms内部的知识。以有利于特定dbms的方式倾斜次要设计选择可能是一个巨大的回报。(MySQL中会想到固定长度的记录和集群)

    您还需要一本关于关系数据库设计基础知识的厚而乏味的书,以便给您的朋友和同事留下深刻印象。我找到的这方面最好的书是C.J.Date。除了和作者一样厚和乏味之外,不幸的是,它还有一些关于规范化和关系理论的最好的材料


    我支持@Cade Roux对Celko书籍的建议,特别推荐“智能SQL”或“数据和数据库”。

    许多大学使用的一本书是“Silberschatz”的“数据库系统概念”:


    我不敢相信没有人提到

    如果你想快速,那么与了解他们的人合作可能是你最好的选择。有钱雇顾问比通读一本书难多了。。。