我一直在开发一些手机游戏,其中那些游戏从服务器数据库中获取数据.
我习惯将"type"值存储为整数标识符,并在客户端中使用枚举来标识来自服务器的数据.
举个例子:在数据库表上:
怪物表:MonsterId(int),名称(字符串),MonsterType(int)
在客户端代码上:
typedef enum {
MonsterTypeGround = 1,
MonsterTypeAquatic = 2,
MonsterTypeAmphibious = 3,
MonsterTypeAerial = 4
}MonsterType;
Run Code Online (Sandbox Code Playgroud)
请注意,上面的代码是Objective-C,我可以在其中指定整数值.但我也在使用C#和C++.
但是,我们的数据库人说,枚举是一个编译技巧,没有枚举数据类型.他认为整数类型标识符使得人们(其他开发人员)很难理解值的含义,并且他们不可能在不查看客户端代码的情况下知道等价物并且枚举不好因为你需要确保枚举与服务器端ID同步,并且最好使用字符串.
我的问题是:在这个问题上是否有客观正确的答案?
除了在客户端代码上使用枚举之外还有其他选择,但仍然会使用整数作为服务器数据库吗?