这是一份关于数据库设计原则与决策方法的资料,核心主张是“学会思考,而不是复制 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 选择、架构设计、索引、查询优化与迁移等主题。资料未提供具体代码示例、安装命令、收费与价格信息,也未说明其许可证、作者背景或使用平台细节,这些内容暂未提供。