Lui*_*ipe 5 postgresql database-design naming-convention
我正在使用 Node.js 创建一个 GraphQL API,它迫使我返回camelCase
.
在我的 PostgreSQL 数据库中,我目前的所有列都按照camelCase
约定命名,但我在想:这是最好的主意吗?
我应该snake_case
在数据库列中使用并在后端转换它们吗?
在 Postgres 中使用小写。Postgres 将标识符折叠成小写,除非你双引号你的标识符。为了使 Postgres 操作更容易,请使用 lower_snake。如果您需要绑定到 API 等,您可以创建一个带有“CamelCase”别名的视图。例如,我们使用 Domo 提取的存储在 Postgres 中的数据来执行此操作。
小智 6
快速说明一下这一点,因为您正在使用节点。我发现knex是一个在 Node 中强制构建查询的好工具。它不是 ORM(很多人说这是一种反模式,我倾向于同意)。
如果你使用 knex,你有这个选项:
步骤 1. 使用wrapIdentifier
从骆驼转换为蛇
步骤 2. 使用postProcessResponse
从蛇转换为骆驼
lodash具有的snakeCase
功能camelCase
应该会派上用场。
我推荐这些方法的原因是,如果你不这样做,你要么必须使用蛇形变量编写代码(这对于 JS 来说非常特殊),要么你必须以驼峰式命名你的数据库列(并且不断地将您的 SQL 查询列名称包装在 中"
),否则您将不得不编写一堆代码,其唯一目的是在两者之间进行转换。
脚注:
我还发现Objection是一种 ORM,它违背了许多反对 ORM 的典型论据,并且非常有用。它位于 knex 之上,提供了一个巨大的 API,用于与数据库交互,但不会完全抽象出您正在与数据库交互的事实。这是一篇与异议相关的主题文章。
归档时间: |
|
查看次数: |
7352 次 |
最近记录: |