0

アプリケーションには、ユーザーごとに記録され、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 -> flagPositive2-> qAccepted) に置き換える必要がありますか?

3) 私が従うべきベストプラクティスはありますか?

4

1 に答える 1

1

1) これは、アプリケーションと要件に大きく依存します。私が言えることは、私は時々このアプローチを使用し、これまでのところ問題に直面していないということです.

2) 文字列ルックアップでパフォーマンスの問題が発生した場合は、そうすることができます。一般的な推奨事項は、本当に必要な場合にのみパフォーマンスを最適化することです。

3) 「Ruby」、「Rails」、「ActiveRecord」、および「Enum」をググってください。この種の問題に対するさまざまな解決策について、多くの議論が行われています。このサイトには同様の質問があります。たとえば、 RubyまたはRails のEnums では、Tasks アプリの Status フィールドを実装するにはどうすればよいですか - 整数または列挙型ですか?

于 2013-11-05T12:58:04.540 に答える