当前位置: 首页 > 知识库问答 >
问题:

使用“type”作为数据库列名

呼延鸿畅
2023-03-14

在新数据库表中命名列时,我遇到的一个常见问题是用于分类子类型的正确名称。最自然的列名通常是type,但我尽量避免在命名中使用SQL关键字或保留词。

我知道类型在MySQL和Postgres中都是一个非保留关键字,所以我可以使用它,但是我应该吗?

使用type作为列名的当前最佳实践是什么?是否有一个同义词如此广泛地等价以至于使用它是有意义的?

这些年来,我花了很多时间试图选择其他名字,在过去一周的讨论中,这两次出现,所以我想看看是否有任何明确的共识?

如果它对其他人有帮助,我过去曾使用过一些替代方案来尝试解决这个问题,包括:

    < li> 类别 < li> 种类 < li> 子类型 < li> < li> type_of < li> 角色 < li> class < li > <代码>

共有3个答案

江德润
2023-03-14

第一条规则,

永远不要使用关键字或保留词。在你之后的人会受苦。

如果您这次只使用“类型”。您可以使用类型

冯枫
2023-03-14

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

因此,如果您使用尾随下划线命名标识符(表名、列名、索引名等),则无需担心冲突。

CREATE TABLE product_ (
    name_ VARCHAR ,
    type_ VARCHAR ,
    …
);

其他人提出的“避免使用保留语”的建议是天真的,可能会失败,而且不可移植。多年前,我对各种数据库产品及其关键字进行了快速调查。我收集了一份大约一千人的独特清单。真正地你不会相信各种产品以各种方式使用了多少不明显的词。当然,冲突是上下文相关的,因此如果您以特定方式使用,并非所有保留字都是问题。但尾随下划线技巧使您无需研究每个产品的保留字列表并监控代码库中潜在的冲突。

命名很棘手。当然,您应该努力使用尽可能清晰的描述性名称。有时,特别是在一个特定的问题领域,像“类型”这样的词可能是合适的。如果是这样,添加尾部下划线(< code>type_)就可以睡个好觉了。

锺离韬
2023-03-14

我的建议通常是避免使用关键字,但不是因为它们是保留的,而是因为它们本身往往是模棱两可的。

例如,假设您有一个客户表-带有列“类型”,这可能会填充细分(高价值/低价值等),也可能填充源(直接营销/走进等)。

“类型”是一个低值词。我通常建议以牺牲列长度为代价尽可能明确。例如“CustomerSourceType”或“InventoryLocationType”或任何在场景中实际上更清楚的东西。

 类似资料:
  • 我在Spring Batch上有点麻烦。我正处于这种情况:我必须分析文件中的数据,并将所有内容插入数据库(Oracle)。我面临的问题是,当我试图配置用于保存数据的数据库时,应用程序崩溃并关闭。我有一条错误消息: Application.Properties 用于配置数据库的MultipleDBConfig.java Bean

  • 问题内容: 我有一个内存中的数据源: 但是现在我被卡住了。我想将其用作J2SE应用程序中的JPA数据源。我已经搜索了整个网络,但是所有信息都与J2EE有关。 问题答案: / 在这里输入什么? / 好吧,什么都没有。在Java SE环境中,您必须使用来自JPA提供程序的内置连接池,并且设置如下所示:

  • 问题内容: 我想将Redis用作数据库,而不是缓存。根据我的(有限的)理解,Redis是一个内存数据存储。使用Redis有什么风险,如何减轻它们? 问题答案: 您可以通过多种不同方式将Redis用作权威存储: 打开 AOF (仅附加文件存储),请参阅AOF文档。这将实时记录针对您的数据集执行的所有Redis命令的日志。 使用主从复制运行Redis,请参阅复制文档。如果您的一个实例发生故障,这将使您

  • 我在PDI CE 7.0上运行勺子,并试图第一次设置我的数据库存储库。我可以使用SQL服务器作为我的数据库存储库,但我想知道我是否可以使用我的红移服务器作为我的数据库存储库。 当我测试我的数据库连接时,它运行正常。然而,当我尝试连接到存储库时,我会收到一条错误消息,说“您似乎没有连接到服务器。请检查您正在使用的路径,并确保服务器已启动并运行”(单击以查看错误消息) 我已经试着改变我的JDBC驱动程

  • 问题内容: 我需要使用php创建一个具有大量数据的mysql数据库的解决方案。我的程序将有许多要求,我认为如果我使用缓存和OO数据库,我会得到很好的结果,但是我没有经验。 我认为,例如,如果我将保存在mysql中的信息缓存到redis数据库中,性能将会提高,但是我不知道这是否是个好主意,因此我希望有人来帮助我选择。 抱歉,如果我的英语不太好,我来自巴西。 问题答案: 是的,redis对此很有帮助。

  • 问题内容: 我想使用Yii2和redis作为数据库。 到目前为止,我从这里获得了Yii2的Redis ActiveRecord类。 链接1 链接2 但是,我遇到了问题。为什么该类在REDIS中添加为哈希? 除此之外,我找不到插入数据的模式。我添加了一个用户,它将在名称空间下添加一个用户,并在其下添加另一条记录,依此类推,但是主题都没有我在属性中定义的任何字段!仅包含ID。 我知道键值类型数据库和R