在数据库表中保留枚举

leo*_*ora 14 c# enums database-design

我有一个具有状态的订单(在代码中是一个枚举).问题是如何坚持这一点.我可以:

  1. 将字符串保留在字段中,然后映射回枚举数据检索.
  2. 将此作为整数保留,然后映射回枚举数据检索.
  3. 为枚举值创建单独的表,并在数据检索上进行连接.

思考?

Jon*_*upp 8

如果这是一个固定的列表(它似乎是,或者你不应该将它存储为枚举),我不会使用#1.

使用#3而不是#2的主要原因是为了便于使用自助查询实用程序.但是,我实际上使用了#2的变体:将值存储为整数并映射到数据检索的枚举.但是,还要创建一个表示枚举类型的表,其值为PK,名称为另一列.这样,它可以简单,快速,高效地与您的代码一起使用,但也可以通过自助服务查询和不使用您的数据访问代码的其他用途轻松获得逻辑价值.