5

多くのチュートリアル(特に認証用)では、スピーカーはユーザー認証とプロファイル情報をユーザーと呼ばれる同じテーブル(モデル)に配置すると言います。

私の質問は単純です:すべてを1つのテーブルに入れるのは安全ですか?(ボーナス:これはベストプラクティスですか?)

認証情報(電子メール、パスワード、ソルトなど)とプロファイル情報(名、姓、生年月日、場所、性別など)をユーザー(認証用)とユーザー(認証用)の2つのモデルに分けることをお勧めします。プロファイル、およびhas_one/belongs_toアソシエーションによるモデルのリンク。

私が間違っている?あなたは私に何を提案しますか?

ありがとう。

4

2 に答える 2

6

データベースの正規化に従いたい場合は、テーブルを分離する必要があります。ただし、最適なオプションではない場合もあります...たとえば、テーブルusersemail, password(認証用) とname. profileを格納するためだけにテーブルを作成するわけではありませんnameよね?

したがって、設計上の決定を下すのは要件によって異なります....

@D Roddis が、 、およびの 3 つの異なるアプローチについていくつかの長所と短所を説明している興味深い投稿を見つけました。Storing User Profile in Users TableStoring User Profile in User_Profile Table 1-1 relationship to usersStoring User Profile as properties and values in tables

それが役立つことを願っています...

于 2012-08-20T15:19:53.583 に答える
1

私はそれらを自分で別のモデルに入れます。

ユーザーとプロファイルを同時に操作するアクションはいくつありますか? 多くはありませんが、両方のコンストラクトには、お互いについて何も (または id 以外は) 知る必要がないことがたくさんあります。

于 2012-08-20T15:04:28.823 に答える