0

这可能是一个愚蠢/基本的问题,但我有Program一个业务类型为“工作”、“学校”、“教堂”等的模型。现在,它将这些作为字符“w”存储在数据库中,” s","c" 等。但是,如果我这样做,我必须运行switch( casein rails) 才能获得真实姓名。我用其他一些属性来做这些。

将确切的值存储在数据库中而不是运行此case语句会更好吗?我想这是一个在处理名称所需的时间内节省数据库空间的问题(我想还有一个代码可读性问题)。

编辑

我应该澄清一下,这些东西只有 4 个不可变的值。有一个外部机会我可能需要稍后添加一两个,但创建新资源似乎没有意义,因为实际上没有对这些属性执行任何 CRUD 操作。

编辑

程序.rb

attr_accessible :org_type

validates :org_type, :presence => true.
                     :inclusion => %w[any c s c] # And have a case later
             #OR     :inclusion -> $w[Any Corporation School Church]
4

1 回答 1

0

如果您以后可能会添加更多内容,请将其作为资源。它给你更多的优势而不是劣势。

如果您出于性能原因这样做:首先使其与资源一起使用。然后修复性能。在这种情况下,它看起来像是过早的优化。这里不需要不使用资源。

此外,您已经期望正在添加值,以便使案例非常清楚。

不过,如果您提供更多信息,可能会有更好的解决方案。这取决于每种类型需要哪些字段。

于 2013-01-08T08:54:44.977 回答