postgresql wiki列出了一些在使用 PostgreSQL 数据库时应该避免的常见错误和不推荐的做法。
以下是一些主要的要点:
数据库编码:
- 不要使用 SQL_ASCII 编码,因为它可能会导致存储多种不同编码的混合,从而无法可靠地恢复原始字符。
- 不要使用 psql -W 或 psql --password,因为即使服务器不需要密码,它也会提示您输入密码。
- 不要使用规则(rules),而应该使用触发器(triggers)。
- 不要使用表继承(table inheritance),而应该使用外键(foreign keys)。
- 避免使用 NOT IN,因为它在列表中包含 NULL 时行为出乎意料,且优化效果不佳。
- 不要使用大写字母命名表或列,因为 PostgreSQL 会将所有名称转换为小写。
- 不要使用 timestamp(无时区)类型,而应该使用 timestamptz(有时区)。
- 不要使用 char(n) 类型,而应该使用 text。
- 不要使用 money 类型来存储货币值,numeric 或 integer 可能更好。
- 不要使用 serial 类型,而应该使用标识列(identity columns)。
- 不要在任何生产环境中通过 TCP/IP 使用 trust 认证。