1.0 KiB
1.0 KiB
持久化
- 数据访问接口围绕业务查询和写入意图设计,不让上层拼接 SQL、存储过程参数或 ORM 内部对象。
- 查询只选择需要的数据,限制返回规模;列表接口明确分页、稳定排序和过滤条件。
- 参数通过驱动或框架的绑定机制传递,不拼接不可信输入形成查询语句、标识符或排序片段。
- 一次业务读取避免隐式逐条查询。发现 N+1 或无界扫描时,根据数据量和访问模式选择批量、连接或分步加载。
- 唯一性、外键和非空等可由数据库可靠保证的不变量应具有数据库约束,同时在业务层提供可理解错误。
- 并发写入使用项目明确的锁、版本或条件更新策略,并检查实际受影响行数。
- 模式变更考虑向前兼容、存量数据、回滚和分阶段部署;破坏性删除不与依赖旧字段的代码同时上线。
- 日志和错误不得输出完整 SQL 参数中的秘密或个人数据;诊断信息保持最小充分。