应用程序具有为每个用户记录的某些操作,并记录在db表notifications
中。该表具有以下结构:
user_id, notification_type, credit, timestamp
notification_type不存储通知的整个文本,而只存储简短类型描述。
稍后当用户想要查看他的通知时,我在视图中使用帮助器方法来获取实际文本。
def notification_text(type)
case type_id
when 'flagPositive'
return 'A question you flagged has been marked as correct.'
when 'qAccepted'
return 'A question you added has been accepted.'
when 'qModerated'
return 'You moderated a question.'
when 'flagReport'
return 'You moderated a flag.'
end
end
1)这是一种最佳方式吗?
2)我是否应该将type_description替换为整数值(比如1 -> flagPositive
,2-> qAccepted
)以获得性能优势?
3)我应该遵循哪些最佳实践?
答案 0 :(得分:1)
1)这在很大程度上取决于您的应用和要求。我可以说的是,我有时使用这种方法,到目前为止没有遇到任何问题。
2)如果您发现字符串查找存在性能问题,则可以执行此操作。一般建议仅在真正需要时才优化性能。
3)只需谷歌“Ruby”,“Rails”,“ActiveRecord”和“Enum”。你会发现很多关于这类问题的不同解决方案的讨论。此网站上存在类似问题,例如Enums in Ruby或In Rails, how should I implement a Status field for a Tasks app - integer or enum?