AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 186498
Accepted
M.A.K. Ripon
M.A.K. Ripon
Asked: 2017-09-21 21:45:20 +0800 CST2017-09-21 21:45:20 +0800 CST 2017-09-21 21:45:20 +0800 CST

状态或类型列的 MySQL 相似名称

  • 772

由于 status 和 type 是 MySQL 中的保留键,我需要一个类似于 status 的列名来标识行的状态。

我知道有办法忽略这个问题,但是在不同的语言和不同的框架中,它会以不同的方式突然出现这个问题,所以我需要忽略这个词,需要一个听起来几乎相同并且可以从名称中理解的相似词。

我的用例的潜在值是真/假。您建议如何命名定义该行状态的布尔列?

这里的状态是定义该行是否处于活动状态。并不是我为此目的使用状态列的每个地方,Somewhere 状态列定义状态是否为待处理、当前、已确认、已应用、已拒绝等。就像这个短键一样。

mysql naming-convention
  • 4 4 个回答
  • 6752 Views

4 个回答

  • Voted
  1. Joe W
    2017-09-22T07:02:01+08:002017-09-22T07:02:01+08:00

    正如a_horse_with_no_name评论的那样:

    我通常会在其中包含实体名称,例如person_statusor element_type。这也使阅读查询更容易(至少在我看来)

    ...最好在这些列名称中包含更多信息,以使它们更易于理解。

    例如,您在用户表中可以有一个user_statusanduser_type列,这些名称将清楚地定义您所指的状态和类型。user_status如果那些列使用参考表(例如和),它会更加有用user_type。

    这些只是例子。可以修改表名以表明它是参考表,例如r_user_status或user_status_ri。或者可以努力使其更通用(但仍然比 更具描述性status),以便它可以用于更多表。这还允许您删除可能需要更新的重复数据,并将更新移动到单个表中,以便您可能需要更改现有状态的文本。

    最后,避免诸如状态和类型之类的通用名称将使后来加入项目的开发人员更容易理解数据及其关系。

    • 6
  2. Best Answer
    3 revsuser126897
    2017-09-27T16:26:03+08:002017-09-27T16:26:03+08:00

    社区维基回答:

    地位

    • (健康)状况
    • 情况
    • 状态

    类型

    • 种类
    • 种类
    • 种类
    • 类别

    如果您正在寻找同义词,我不清楚。如果是这样,并且您将来只需要同义词,请查看English Language & Usage Stack Exchange上的单词选择标签。

    您可能需要小心使用此类列名称,因为它们可能会使用户感到困惑,因为它们的含义可能与行状态或记录类型不同。

    • 5
  3. Basil Bourque
    2017-09-21T22:24:58+08:002017-09-21T22:24:58+08:00

    附加下划线

    SQL 标准明确承诺绝不在任何关键字或保留字上使用尾随下划线。

    所以命名你的列status_和type_.

    我以这种方式命名我的所有表和列,因此我不必担心与各种数据库保留的数千个单词中的任何一个发生冲突。我发现了一个有益的副作用:消除一些歧义。在讨论、电子邮件和应用程序编程中,当我们专门提到数据库表或列时,例如customer_与客户的概念或名为customer.

    不幸的是,我不能引用 SQL 规范,因为它受版权保护。

    • 在SQL:2011规范中,阅读标题语法规则第3 项下的第 5.4 节名称和标识符,注意 111。
    • 在SQL-92中,请参阅第 5.2 节第 11 项。只需搜索单词underscore即可。
    • 2
  4. Evan Carroll
    2017-10-04T07:50:13+08:002017-10-04T07:50:13+08:00

    尽量避免它像瘟疫一样。

    • 如果适用于您,对于二元条件,请使用更具描述性的内容,例如is_active并将其设置为trueor false。这不仅更有意义,而且提供了一种性感的语法SELECT * FROM t WHERE is_active。如果它意味着挂起,创建is_pending或is_current。
    • 对于离散值的枚举,例如SELECT * FROM listings WHERE status IN ( 'sold', 'terminated', 'active' );等。在这种情况下,我会接受@Joe W 对listing_status. 这里有一个附录,如果这是您需要的,您应该查看ENUMtype。
    • 对于一个不可能如此广泛或动态的列表,我会命名它listing_status_id并链接到一个外表listing_status。这正是@Joe W. 所建议的
    • 1

相关问题

  • 是否有任何 MySQL 基准测试工具?[关闭]

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve