首页 > 解决方案 > 为互斥选项而不是真/假关系命名布尔变量

问题描述

我正在寻找一种方法来命名一个表示两个互斥选项的布尔变量,以便在变量为 True 或为 False 时清楚选择的选项是什么,而无需查看实现。

例如,假设您的程序在 Chicken xor Fish 之间进行选择。目前,在数据库中,该变量将被命名为“lChickenOrFish”。单看这一点,尚不清楚 lChickenOrFish = True 是代表鸡还是代表鱼。要找出答案,您必须打开代码并搜索它的使用位置,然后从那里进行解释。

我知道您可以改为使用两个变量 lChicken 和 lFish,但这会导致 lChicken = True 和 lFish = True 在同一行中,这将是一个错误,因此需要代码来检查。

您也可以只使用 lChicken 作为名称,并让 lChicken = 0 隐含表示 Fish。但是,如果程序员需要知道另一个选项是什么,他们必须打开代码进行查找,这与之前的问题相同。在某些情况下,甚至可能不清楚是否还有其他选项可供查找,具体取决于布尔值正在做什么。

那么有没有办法让纯粹看 SQL Server 数据库而不在代码中查找实际实现的程序员清楚这一点?

标签: naming-conventions

解决方案


我建议使用枚举或字符串值,而不是使用布尔值。在没有指定语言的情况下,我可以为枚举提供一些伪代码:

enum FoodValue {
  Chicken = 1,
  Fish = 2
}

var dbValue = FoodValue.Chicken;

这样,如果您想稍后添加值,很容易更新枚举或直接存储字符串值。


推荐阅读