当编程语言使用驼峰命名法时,PostgreSQL 标识符中的下划线或驼峰命名法? [关闭]

2023-12-28

给定一种 OO 语言,其中对象属性的命名约定为驼峰命名法,示例对象如下:

{
    id: 667,
    firstName: "Vladimir",
    lastName: "Horowitz",
    canPlayPiano: true
}

我应该如何在 PostgreSQL 表中建模这个结构?选项:

  1. 不带引号的驼峰式列名
  2. 带引号的驼峰式列名
  3. 带下划线的不带引号(小写)的名称

每种都有缺点:

  1. 不带引号的标识符折叠为小写。您可以创建一个表canPlayPiano列,但混合大小写永远不会到达数据库。该列将显示为canplaypiano在 psql、pgAdmin 中,解释结果、错误消息,无处不在。

  2. 引用的标识符保留其大小写,但是一旦您像这样创建它们,您就会always必须引用它们。如果您创建一个表"canPlayPiano"柱,一个SELECT canPlayPiano ...将失败。这会给所有 SQL 语句增加噪音。

  3. 带下划线的小写名称是明确的,但它们不会映射到应用程序语言正在使用的名称。您必须记住使用不同的名称进行存储(can_play_piano)和代码(canPlayPiano)。它还会阻止某些类型的代码自动化,其中属性和数据库列需要命名相同。

无论我做什么,有些部分都会感到尴尬。我一直在使用选项 3,但一直希望有更好的解决方案。大小写折叠和引号的需要来自 SQL 标准(PostgreSQL 对该标准的改编)。我知道它是如何运作的;我对最佳实践更感兴趣,而不是关于 PostgreSQL 如何处理标识符的解释。


如果您的列在PostgreSQLunderscores,您可以输入别名,但使用双引号.

例子 :

SELECT my_column as "myColumn" from table;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当编程语言使用驼峰命名法时,PostgreSQL 标识符中的下划线或驼峰命名法? [关闭] 的相关文章

  • 如何查找 PostgreSQL 数据库的上次更新时间?

    我正在使用一个批量更新的 postgreSQL 数据库 我需要知道数据库 或数据库中的表 上次更新或修改的时间 两者都可以 我看到 postgreSQL 论坛上有人建议使用日志记录并查询日志 这对我不起作用 因为我无法控制客户端代码库 你可
  • postgres 有 CLOSEST 运算符吗?

    我正在寻找这样的东西 给定一个表格 id number 1 7 2 1 25 3 1 01 4 3 0 查询SELECT FROM my table WHEREnumberCLOSEST 1 将返回第 3 行 我只关心数字 现在我有一个程序
  • 插入多行并返回主键时 Sqlalchemy 的奇怪行为

    插入多行并返回主键时 我注意到一些奇怪的事情 如果我在 isert 查询中添加使用参数值 我会得到预期的行为 但是当将值传递给游标时 不会返回任何内容 这可能是一个错误还是我误解了什么 我的sqlachemy版本是0 9 4 下面如何重现错
  • 数据库错误:值对于类型字符变化来说太长(100)

    我有一个 Django 网站 运行我们几年前在内部构建的迷你 CMS 它使用 postgresql 保存简单的标题和一段文本时 出现以下错误 value too long for type character varying 100 奇怪的
  • 如何在 PostgreSQL 中将数据库从一台服务器移动到另一台服务器?

    我正在尝试将数据库从旧服务器移动到新服务器 任何帮助 将不胜感激 Just pipe http www postgresql org docs current interactive migration html从旧服务器转储到新服务器 p
  • Google Cloud SQL - Postgresql 存储不断增长

    我最近开始修补 Google Cloud SQL PostgreSQL 我创建了一个空数据库 在 4 5 天的时间里 其存储使用量已增长到超过 20GB 它一直在上升 但数据库中没有数据 它甚至没有被使用 有谁知道会发生什么以及如何阻止它
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • 跨多个表进行搜索,并在结果行中显示表名称

    如何构建 SQL 语句以跨多个平面不相关的表运行 并使用选择结果和结果来自的表的名称显示结果 这种情况是这样的 我有几个表 每个表都有相同的列名 这是我从外部各方收到的数据 并将其存储在不同的表中 相同的表看起来像 Table 1 pid
  • PESSIMISTIC_WRITE 是否锁定整个表?

    只是为了确保我正确理解事情是如何运作的 If I do em lock employee LockModeType PESSIMISTIC WRITE 它会仅阻止该实体吗 employee 或整个表Employees 如果重要的话 我正在谈
  • 执行带有 EXCEPTION 的 PostgreSQL 查询会导致两条不同的错误消息

    我有一个 PostgreSQL 查询 其中包含事务和列重复时的异常 BEGIN ALTER TABLE public cars ADD COLUMN top speed text EXCEPTION WHEN duplicate colum
  • Postgres 中的输出 Inserted.id 等效项

    我是 PostgreSQL 新手 正在尝试将 mssql 脚本转换为 Postgres 对于合并语句 我们可以使用冲突更新插入或不执行任何操作 但我使用下面的语句 不确定这是否是正确的方法 MSSQL代码 Declare tab2 New
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何将docker postgres镜像10.3中的pg_restore升级到10.5

    我使用 tableplus 作为我的一般管理员 目前使用 10 3 版本的 docker postgres 镜像进行生产和本地主机开发 因为tableplus将他们的postgres 10驱动程序升级到了10 5 所以我不能再使用pg re
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • 将 UNNEST 与 jOOQ 结合使用

    我正在使用 PostgreSQL 9 4 Spring Boot 1 3 2 和 jOOQ 3 7 我想 jOOQify 以下查询 SELECT id FROM users WHERE username IN SELECT FROM UNN
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • Docker 容器在运行或重新启动 PostgreSQL 镜像后立即退出

    我是 docker 的初学者 由于容器重新启动问题 我陷入困境 当我尝试重新启动现有退出的容器或创建新容器 删除旧容器后 运行时 会出现问题 docker run d name mempostgres v home lukasz lc pg
  • 如何使用单个查询对从另一个表检索的表列表进行 UNION?

    我有一个表 其中包含 PostgreSQL 中的表列表 id table 1 table1 2 table2 3 table3 我想从所有这些表的联合中进行选择 例如 伪代码 select from union select table f

随机推荐

  • WinDbg !heap 命令由于缺少符号而无法工作

    我正在尝试使用 WinDbg 调试带有 C 非托管内存分配的 NET 应用程序 当我尝试运行 heap命令 我收到以下错误消息 0 022 gt heap ERROR Symbol file could not be found Defau
  • Graphviz:更改子图簇内的节点间距

    经验丰富但不是 Graphviz 专家 我分享的示例代码和图像是更大图表的一部分 我将其拉出来以使问题和示例更清晰 该图是按等级分开的并且从左到右流动 在图像示例中 您可以看到三个等级和节点空间很好 但我想在子图中收紧它们 我已经尝试了六种
  • 如何实现对2个不同表数据的搜索?

    使用 mysql 和 PHP 我已经在使用 MATCH AGAINST 子句了 它在单独的表上运行良好 就像我想在商店表中搜索一样 没问题 我想要的是能够在单个结果页面中搜索和显示不同表的结果 例如 如果我输入 巧克力衣服 我可能会得到4个
  • 在 C++ 或 Qt 中格式化 XML 文件

    我有一个 XML 文件 其中输出未格式化 这意味着所有输出都在一行中 但我想逐个标签地打破它 例如
  • all.moments 功能奇怪的结果

    我想计算分布的 n 阶矩 我正在尝试使用 R 中库 moments 的 all moments 函数 我已经以这种方式测试了 all moments library moments r lt rnorm 10000 rr lt all mo
  • 移动网络应用程序可以在后台运行吗? (iOS 和安卓)

    移动网络应用程序可以在后台运行吗 我主要对 iOS 和 Android 感兴趣 Thanks 由于这种情况几乎每天都在变化 因此我将发布更新的答案 这适用于这些浏览器的最新版本 但明天可能会发生变化 My 音乐应用程序 http thedi
  • .NET 中是否有多核排序实现?

    NET 中是否有多核排序实现 这是我不久前使用的多线程快速排序async await 在一定的排序大小下 它 恢复 回称为双端选择排序的基本排序 public static class SortExtensions
  • 一起使用@Spy和@Autowired

    我有一个带有 3 个方法的服务类 服务类还使用一些 Autowired 注释 在 3 种方法中 我想模拟两种方法 但对第三种方法使用真实方法 问题是 如果我将 Autowired 与 Spy 一起使用 则将调用所有三个实际方法实现 如果我仅
  • IIS应用程序池PID

    有谁熟悉获取与进程 ID 关联的应用程序池的方法吗 我正在使用 Win32 Process 查询 W3WP 服务并返回 PID 现在我正在尝试获取与其关联的应用程序池 在 Windows Server 2008 上 情况发生了变化 in s
  • 设置按钮助记键事件,无需使用 ALT

    Is there a way to set a button key event in Java so that Alt does not have to be pressed For example when this is used s
  • 如何在不使用 Visual Studio 的情况下编辑 RDLC 报告

    我现在正在研究Sql Server Management Studio和 Visual Studio C 我创建了一个Stored Procedure从数据库中的表中检索数据 使用结果dataset 我创建了一个rdlc使用 Visual
  • python中的复杂if语句

    我需要实现一个complexPython 中的 if elif else 语句 但我无法让它工作 我需要的 elif 行必须检查变量是否满足此条件 80 443 或 1024 65535 含 I tried if several check
  • 可观察以及如何控制结果速度

    我正在寻找一个运算符来帮助我调整可观察值发出的结果 它看起来像这样 A BC D E A B C D E 我尝试了 AuditTime 但它不会重播间隔之间发出的结果 它会执行以下操作 A BC D E A C E 感谢您的帮助 我认为这应
  • 带有输入元素的 AngularJS 自定义指令,从外部传递验证器

    我正在使用一个简单的自定义指令来修改整个应用程序中出现的输入字段 app directive editor function return restrict E templateUrl editor html scope value The
  • Doctrine 2.2 + Zend Framework 分页速度优化

    我在使用时遇到了 Doctrine 2 性能问题HYDRATE OBJECT 当我从HYDRATE ARRAY to HYDRATE OBJECT 需要花费近10倍的时间 我用过学说 2 和 zend paginator https sta
  • 无法使用 Visual Studio 2019 在 C++ 程序中打开 txt 文件

    在使用 XCode 一段时间后 我刚刚开始使用 Visual Studio 2019 我总是能够在 XCode 中打开 txt 文件 但现在 我无法在 Visual Studio 2019 中打开它们 基本上我所做的是在 调试 选项卡中按
  • 确定字节码中 super() 方法调用的位置,所有构造函数都必须在 JVM 上执行此操作

    我想知道在分析构造函数的字节码时是否有一种明显且快速的方法来确定super 代码结尾为 更具体地说 与 Java 形成鲜明对比 在 Java 中 在构造函数中调用任何super 构造函数方法是可选的 或者更确切地说 当不存在时 隐式 在字节
  • 如何从我的域逻辑生成 NHibernate 映射文件和数据库结构?

    我想在项目中的域对象上实现 NHibernate 但我不确定应该如何生成映射文件和数据库 我发现了一些与此相关的问题here https stackoverflow com questions 432118 generate databas
  • 当应用程序处于后台时,中断后恢复执行代码

    我花了几天时间在 SO 和其他网站上研究这个问题的答案 但没有任何运气 本质上 我为自己设定的挑战是为 iOS 创建一个闹钟应用程序 无论用户在哪里 前台或后台 它都会发出声音 我已经通过使用 AVAudioPlayer 实例并在用户设置闹
  • 当编程语言使用驼峰命名法时,PostgreSQL 标识符中的下划线或驼峰命名法? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 给定一种 OO 语言 其中对象属性的命名约定为驼峰命名法 示例对象如下 id 667 firstName Vladimir lastName H