SuperAPI AI 工具集

database-design

数据与分析

查看项目

更新于 10-15 16:24

技能介绍

这是一份关于数据库设计原则与决策方法的资料,核心主张是“学会思考,而不是复制 SQL 模式”,强调依据具体场景做出选择,而非默认套用某种数据库或写法。

一、用途与组织方式 该资料并非单一长篇文档,而是由一组按主题拆分的文件构成,阅读时需要先查看内容地图,只读取与当前请求相关的文件,避免无关内容干扰。

内容地图(文件与对应主题、适用时机):

  • database-selection.md:PostgreSQL、Neon、Turso、SQLite 的对比,适用于选择数据库时。
  • orm-selection.md:Drizzle、Prisma、Kysely 的对比,适用于选择 ORM 时。
  • schema-design.md:规范化、主键、关系,适用于设计架构时。
  • indexing.md:索引类型、复合索引,适用于性能调优时。
  • optimization.md:N+1 问题、EXPLAIN ANALYZE,适用于查询优化时。
  • migrations.md:安全迁移、无服务器数据库,适用于改动架构时。

二、核心原则

  • 当用户偏好不明确时,应向用户询问数据库偏好。
  • 基于上下文(CONTEXT)选择数据库与 ORM。
  • 不要对所有情况都默认采用 PostgreSQL。

三、设计前的决策清单 在设计架构之前,需要逐项确认:是否已询问用户的数据库偏好;是否为当前上下文选定了数据库;是否考虑了部署环境;是否规划了索引策略;是否定义了关系类型。

四、反模式(应避免的做法)

  • 为简单应用默认使用 PostgreSQL(SQLite 可能已经足够)。
  • 跳过索引。
  • 在生产环境使用 SELECT *。
  • 在结构化数据更合适时改用 JSON 存储。
  • 忽略 N+1 查询。

五、适用范围与限制 该资料聚焦于数据库设计与选型的思考过程,覆盖数据库选择、ORM 选择、架构设计、索引、查询优化与迁移等主题。资料未提供具体代码示例、安装命令、收费与价格信息,也未说明其许可证、作者背景或使用平台细节,这些内容暂未提供。