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 / 问题 / 13317
Accepted
kingdango
kingdango
Asked: 2012-02-18 05:25:55 +0800 CST2012-02-18 05:25:55 +0800 CST 2012-02-18 05:25:55 +0800 CST

我应该使用列命名约定还是依赖列描述?

  • 772

坦率地说,我很惊讶在一些基本的(非常基本的)互联网搜索之后,我无法找到一个全面的命名约定或指南或 SQL 对象和列命名。

我习惯的类似情况是在 .NET 开发世界中,那里有许多提供的约定,微软甚至记录了一套被广泛采用的综合建议:

  • 一般命名约定
  • 类库开发设计指南
  • 名称准则

1. 数据库对象、列等命名是否有一个被广泛采用的标准?

2. 依赖Description 属性来描述表的列有什么陷阱吗?显然,人们希望名称能够揭示意图,但这有时在数据库中很难做到,而且描述对于了解数据库的人来说可能是无价的(尽管他们也可能撒谎)。

非常感谢帮助!

naming-convention
  • 4 4 个回答
  • 1696 Views

4 个回答

  • Voted
  1. Best Answer
    Aaron Bertrand
    2012-02-18T05:34:59+08:002012-02-18T05:34:59+08:00
    1. 选择一个标准,确保它有意义,并记录下来。关于这一点有很多争论(例如,联系人表中的身份列是否应该称为 ID 或 ContactID,或者联系人表是否应该称为 dbo.Contacts 或不必要的冗长 dbo.tblContacts),你永远不会会在你的同龄人之间找到共识。你选择哪个标准并不重要;重要的是你始终如一地使用它,让它广为人知,并让你的同事同意这是这种方式。

    2. 在可行的情况下,您的专栏应该是自我记录的(而不是神秘的、缩写的或混淆的)。我不会依赖扩展属性,但这只是我(google/bing 用于扩展属性的问题,我猜你会看到很多抱怨)。外部文档/数据字典对我来说更有价值——如果你的数据库南下,你的备份也一样,它会使重建变得容易得多。它还可以更轻松地向初级开发人员等描述您的架构,而无需让他们直接访问所有内容。

    • 7
  2. onedaywhen
    2012-02-18T07:43:03+08:002012-02-18T07:43:03+08:00

    数据库对象、列等命名是否有一个被广泛采用的标准?

    ISO/IEC 11179 数据元素命名指南。我不确定您所说的“采用良好”是什么意思,但它肯定是全面的,没有过度规范。ISO意味着它被广泛采用。

    • 3
  3. db2
    2012-02-18T05:55:15+08:002012-02-18T05:55:15+08:00

    我的建议:根据它们所做或代表的事情来命名事物,而不是它们如何做这些事情。换句话说,不要将表命名为“tblCustomers”,否则您最终可能会得到一个名为“tblCustomers”的向后兼容视图,或者类似的愚蠢行为。同样,不要对列名执行此操作,以免最终从“fltBalance”中获取十进制值。

    一个例外是,我偶尔会在视图名称前加上“vw”,以表明它是一个视图,而不是一个表,因此从其中获取数据可能会对性能产生影响。

    • 1
  4. RGPSoftware
    2012-02-18T07:55:20+08:002012-02-18T07:55:20+08:00

    就个人而言,我对表和视图使用以下约定: 在表名前加上它所保存的数据类型,这通常很清楚,但并非总是如此。以下是我使用的一些前缀示例:

    data_(保存核心数据的表) ref_(保存查找值的引用表) xref_(多对多连接表) info_(元数据表(在某些情况下可能不适用,但在我的情况下,像表这样的东西)保存有关数据库使用的关联数据或应用程序的版本等数据)) app_(通过视图附加到其他表的表(同样可能不适用于很多人,但在我的情况下,这些是静态表)包含地理信息等内容,这些信息通过邮政编码等内容附加到记录中)

    当然,还有数据仓库中事实和维度广泛使用的 fact_ 和 dim_ 前缀。

    有人可能会争辩说,现在应该将这样的前缀实现为模式,但我喜欢为“谁”保留模式,因为它们提供了不同级别的安全管理。

    在我目前工作的地方,我们使用所有小写的列名和混合大小写,表名使用下划线分隔符,例如:data_Claim_Transactions。

    我们对列名使用所有小写字母,部分原因是我们混合使用了区分大小写的 Java 和 Linux。此外,由于 Oracle 区分大小写,我认为即使您使用的是 SQL Server(默认情况下并非如此),设计区分大小写也是一个好习惯。实际上,我们使用了很长的列名,大约有 100 个字符长,但它们非常具有描述性,并且考虑到我们所做工作的性质,这是必需的。我会说对于应用程序数据库,您可以使用较短的列名。在数据仓库中,您往往需要更长的名称,特别是当您有很多具有相似内容的列或者您有高度非规范化的表时。

    • 0

相关问题

  • 是否有理由使用极其缩写的表名?

  • 我应该如何最好地命名我的时间戳字段?

  • 命名表和视图时应该遵循什么标准?

Sidebar

Stats

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

    如何查看 Oracle 中的数据库列表?

    • 8 个回答
  • Marko Smith

    mysql innodb_buffer_pool_size 应该有多大?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    从 .frm 和 .ibd 文件恢复表?

    • 10 个回答
  • Marko Smith

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

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

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

    • 4 个回答
  • Marko Smith

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

    • 7 个回答
  • 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
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +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
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +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