mysql - 使用 `type` 作为数据库列名

标签 mysql sql postgresql

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

我知道 typeMySQL 中都是保留关键字和 Postgres ,所以我可以使用它,但是我应该吗?

目前关于使用 type 的最佳实践是什么?作为列名?是否有一个广泛等同的同义词,使用它才有意义?

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

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

  • category
  • kind
  • subtype
  • type_of
  • role
  • class
  • <entity>_type

最佳答案

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

例如,假设您有一个客户表 - 有一个“类型”列,该列可能填充了分割(高值(value)/低值(value)等),或者可能填充了来源(直接营销/步入式等)。

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

关于mysql - 使用 `type` 作为数据库列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160240/

相关文章:

mysql - 查询 Shoretel 报告中的多个 SELECT CASE 语句

database - 用于日期和时间查询的 ruby​​ on rails 范围

ruby-on-rails - 使用 PostgreSQL 运行 rails db 迁移的最低权限

mysql - 从当前数据库生成 liquibase xml 文件

MySQL' 未被识别为内部或外部命令 - VS2015 中的 Cordova

SQL : transform union query to a single query

MySQL 将 Unicode 解码为 UTF-8 函数

sql - Postgres - 如何找到某一列的最大交集的行

php - 根据用户选择插入多个表? PHP

php - 通过html页面访问数据库是否可能且合法?