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

时间:2016-03-22 23:13:34

标签: 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,这种做法开始分解。

1 个答案:

答案 0 :(得分:1)

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

  1. 一旦确定,值是否会改变。
  2. 代码和数据库之间是否需要松耦合。
  3. 如果#1的答案是肯定的,那么我会考虑从类型表中提取你的值,因为它首先会有常量或枚举。 (如果类型是您的应用程序的核心,并且在添加值时不需要修改其他客户端应用程序,那么这将更容易维护并在逻辑比较中使用)

    如果#2的答案是肯定的,那么我会调查一个orm mapper或其他动态表达你的恒定范围的方法。如果您无法对数据库的更改做出响应,那么就会让您陷入困境。