Rails、数据库状态列中的字符串或整数值

jon*_*atr 2 activerecord database-design ruby-on-rails rails-models

我有一个具有状态属性的事件模型,想知道是否应该将其放入字符串或整数字段。事件可以具有三种不同的状态:“正在收集”、“活动中”或“已结束”。如果我应该采用整数解决方案,我应该在某处定义一个常量,以便可以仅使用 CLOSED 代替“2”(我应该在哪里放置这个常量?)

提前致谢!

Pau*_*der 5

我建议使用整数有两个主要原因。

  1. 大多数数据库可以比字符串更快地查询和索引整数列。
  2. 查询大型数据集时,它在磁盘和网络上占用的空间更少。

无论您选择字符串还是整数,都应该将它们定义为常量并仅通过它们的常量引用它们。您永远不应该直接使用这些值。

http://en.wikipedia.org/wiki/Magic_string_(编程)

  • 我想这个状态存储在模型中,在那里定义它。IE。活动::关闭。 (2认同)