現在、Ruby on Rails 4.2.6 と MySQL 5.5 を使用してアプリケーションを開発しています。
##聞きたいこと
たとえば、以下のようなユーザーの情報をもつテーブルがあったとします。
users - id: integer - email: string - name: string
もしユーザーの設定機能を追加する場合、
以下のように新しい user_settings
テーブルを作成すべきなのか、
users
テーブルに設定のためのカラムを追加すべきなのかを知りたいです。
user_settings - id: integer - user_id: integer - receive_newsletter: boolean - receive_message: boolean
users
テーブルや user_settings
のカラム数は、
今後機能を追加していく予定なので、さらに増えていくと思います。
また、メール通知の設定だったり、プロフィールの公開範囲の設定だったり、
設定の種類も今後増えていくと考えられます。
さらにユーザーのステータスも管理することになるかもしれません。
そういった場合のテーブル設計についても教えていただけると幸いです。
考えたこと
1つのテーブルに統一した場合、たとえばユーザーのプロフィール更新のとき、
必要のない余計な設定情報をデータベースから取得してしまい、メモリを消費してしまう可能性があります。
ただユーザー情報と設定情報を同時に読み込んだり、更新したりする場合もあるかと思います。
その場合は、join
するか、別にデータを読み込む必要あります。
このようにメリットとデメリットどちらも考えられるので、どうするべきか迷っています。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/07 06:31