database - 定义数据库 ID 常量/变量的最佳实践是什么

标签 database go

我发现当我处理一个项目时,它通常会简化一些事情来定义代表数据库 ID 字段的变量或常量。在 golang 中,我有一个包含

的 constants.go 文件
const (
   //SELECT ID FROM dbo.MyTable
   MYTABLEID_NO    = 1 // MyTable ID for NO
   MYTABLEID_YES   = 2 // MyTable ID for YES
   MYTABLEID_MAYBE = 3 // MyTable ID for MAYBE
)

这被认为是不好的做法吗?如果是的话,我怎么能绕过这样做呢?在 golang 中有更动态的方法吗?如果由于某种原因 ID 更改、添加新 ID 或表有许多 ID,这种处理方式开始崩溃。

最佳答案

您可能会得到截然不同的答案,因为它只是归结为偏好。我不认为这是不良做法的一个例子。如果您不使用 orm 映射器,那么常量或枚举将是表示“类型化”的好方法。您应该问自己两个问题。

  1. 值(value)观一旦确立,是否会发生变化。
  2. 代码和数据库之间是否需要松耦合。

如果 #1 的答案是肯定的,那么我会考虑从类型表中提取您的值,因为首先使用常量或枚举会违反直觉。 (如果类型是您的应用程序的核心,并且在添加值时不需要修改其他客户端应用程序,那么这将更容易维护和用于逻辑比较)

如果 #2 的答案是肯定的,那么我会研究一个 orm 映射器或其他方式来动态地表达你的恒定范围。如果您无法响应对数据库的更改,那么您就会陷入困境。

关于database - 定义数据库 ID 常量/变量的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166967/

相关文章:

PhpMyAdmin;我应该禁用 root 登录吗?

MySQL 查询优化器占用磁盘访问时间

sql - NVL 功能

sql - oracle中的pctincrease是什么?创建表空间时如何分配、调整大小和自动扩展内存

arrays - 如何生成数字序列

go - 如何使用单个 json.Unmarshal 解码字节数组的一部分?

go - 命名返回值和普通返回值有什么区别?

go - 如何连接忽略空字符串的结构的字符串字段?

arrays - 从另一个变量调用变量名

php - 从 Mysql DB 回显 php 变量