给初学者的 SQL 技巧;作为一名 Web 开发人员,我偶尔编写查询和模式十多年,从中我了解到 SQL 语法不区分大小写

2025-05-26

给初学者的 SQL 技巧;我作为一名 Web 开发人员,在 10 多年偶尔编写查询和模式之后学到的东西

SQL语法不区分大小写

  • 几乎所有内容都应尽早建立索引。不建立索引会导致性能下降。过晚建立索引可能会导致停机或数据不一致。不要为了节省磁盘空间而考虑删除/避免索引,而是应该购买更多空间。但请记住,索引可能会影响写入性能。
  • PostgreSQL 是你的最佳选择,它拥有一个技术娴熟的社区,包括 StackOverflow 的英雄们。我住的地方没有 MySQL、MariaDB 或 SQLite 用户组。

  • ORM 非常适合简单的 CRUD 操作。不要用它来查询特定的统计数据或任何复杂的查询,请使用原始查询。顺便说一句,对于 TS/JS 开发者来说,Prisma 3很不错,Sequelize 已经过时了。

  • SQL语法不区分大小写,请始终使用小写字母(包括下划线),请勿使用驼峰命名法命名表。另外,您无需大声喊叫。 select id from users与 相同SELECT id FROM users。对于字符串比较,大小写敏感度取决于排序规则

  • 不要遗漏任何外键。应避免表之间的隐式链接和关系。

  • 表和列的命名应遵循一定的模式。例如:userspostscomments(复数)。post_usercomment_postcomment_user表示连接表(单数+字母顺序)。 、 、id表示主键,id_userid_comment、 和id_post(单数+ id 在前)表示外键。 对于新手来说,阅读数据库架构比较困难。 表的命名应高度一致。

  • 1 个模型 ≠ 1 个表。遗憾的是,设计数据库时,你必须在比“模型”和“对象”更低的层次上思考。你将不得不处理技术表。

  • 使用正确的数据类型。不要创建由隐式契约定义的“自定义”数据类型。

  • JSONB 很棒,但不要过度使用。另外,要学会如何查询它,虽然复杂但功能强大。当你在设计模式时需要反复迭代时,可以使用 JSONB 来避免反复修改模式。

  • PostgreSQL 不会自动扩展。预计会有迁移和停机。

  • CTE比子查询更具可读性,你可以从上到下阅读它。此外,你还可以理解它的设计方式。

  • 保持表格模式简单,避免使用EAV使表格难以理解和阅读的模式;尽量使大多数表格像垂直 CSV 表一样简单,每条记录一行。

  • 不要害怕编写冗长而繁琐的查询来满足特定需求,这通常更有效率。

  • 查询中单词的顺序与它们被求值的顺序不同。了解执行顺序:from、where、group by、having、order by、select、limit。

  • 即使对于大型产品来说,120 个表也太多了。你可以用 25 个表构建一个健壮的应用程序。

感谢您的阅读🙏

文章来源:https://dev.to/rap2hpoutre/sql-tips-for-beginners-what-i-learned-after-15-years-of-occasionally-writing-queries-and-schemas-as-a-fullstack-dev-2ide
PREV
Docker 中的“Hello World”不止于此:在 Docker 中构建 Rails + Sidekiq Web 应用程序
NEXT
2022 年 45 个最佳 Figma 登陆页面模板(免费)