何时在关系数据库中使用枚举或小表?

ehm*_*cky 14 sql database enums

我在我的数据库中有几个小实体,我表示为包含两列的小表:id和name.此类实体的示例:国家,大陆.

我应该创建一个枚举类型,只要这些实体的名称无关紧要?

Bar*_*ett 16

讨厌用问题回答问题,但这取决于.您经常期望值的变化,以及您多久发布一次代码?

枚举类型将需要更改代码.纯数据库表将更容易更改.枚举类型更便于编码.

对于不频繁的版本,或者如果您经常有新的/删除/更改的值,请使用数据库表.对于静态值集,或者如果您始终释放代码,请使用枚举.

  • @Irfandy,您好,我想说,无论以任何标准衡量,5 年都是罕见的……请注意我对上面版本的引用。问题是:当价值观发生变化时,你是否能够及时发布更新的软件/价值观来满足你的需求? (2认同)

Sam*_*art 12

在以下情况下,Enum很好:

  • 您希望限制可能值的选择(例如,一周中的几天,性别(男/女))
  • 您希望减少存储空间(元组每个只存储1个字节)
  • 减少连接的光盘访问次数

在以下情况下,枚举很糟糕

  • 您不确定将什么作为可能的值
  • 可能的值可能会更改(这需要ALTER表的管理员权限,这可能需要您离线)