分離ユーザテーブルからのテーブルリレーショナルデータベース
-
01-07-2019 - |
質問
もちろん、多くのwebアプリが最初に設定いただくユーザテーブルのユーザー名、パスワード、氏名、電子メールやその他のすべての通常の遭.現在のプロジェクトがユーザー以外の記録に必要な機能と同様に、ユーザーにもなる機能を初め、最初のユーザーです。
でを第二のテーブル people_tb
, との関係テーブルとデータストアのみをご利用 users_tb
認証?は分離 user_tb
から people_tb
現在大丈夫ですか?これは、この戦略とソリューションなどの欠点?
解決
これは確かに良いアイデアとしてき焼準のデータベースです。そして、同様のデザインをアプリを皆様にお伝えしたくて書き込み、私は従業員のテーブルおよびユーザーます。ユーザーが、外部から会社または従業員のの、これまで別々のテーブルから、社員は常にユーザーがユーザーがありません。
する問題にまでこれを使用したユーザーを定義しなければいけませんねるのがほとんどの人がデフォルトの名称又はその他の共通の属性に"と思った。
からコーディングの観点から、使用している場合は、直SQLますので、もう少し努力を精神的にも解析を選択します。でもう少し複雑でご利用の場合は、ORM図書館があります。いい経験です。
私の申請書いうRuby on Railsベースで、がんを常時のようなこと。ユーザーです。名前が合っていただくという。のの名称又はユーザーです。の名前です。
パフォーマンスの観点からは、打つのテーブルの代わりに一つだが、適切な指標では軽微であります。また指標が含まれている主キーの名前、たとえば、データベースのようにユーザテーブル、その指数のテーブル(ほぼ直撃ので、パフォーマンスとほぼ同一ます。
すべてのビューを作成し、データベースを保つものテーブルするために一緒に参加したときにだけ追加のパフォーマンス向上.知っている次期バージョン以降でも、オラクルできるものを入れて指示した場合に必要なパフォーマンスを向上させ.
他のヒント
私は日常的にそれは、私にとって、"ユーザー"(ユーザ名、パスワード、作成日、最終ログイン日時)から"名"(氏名、住所、電話ます。一つの難点とするお問合せを頻繁に要する参加の情報を探す。場合あなたがログイン名にする必要があります参加の"人"をテーブルの名前です。場合はベースを取り巻くすべてのもののユーザidのキー、軽減少が続出します。
まuser_tbは、auth情報は、あくは別people_tb.いただくとともに、ユーザ情報が格納されpeople_tbを除くすべての申込みに必要な情報auth(あるいは使用しませんその他の多くのもの)、その素敵なトレードオフの関係の設計と効率のいいと思います。
私は常に回避してデータを繰り返します。ない場合はすべての人々にログインする必要がありますが、汎用 people
テーブルの情報に適用されるとともにユーザ(例えば.名、姓です。
そして人と人の間に"ログインできるのは、 users
テーブルは1~1との関係 people
.このテーブルを保存でき、ユーザー名とパスワードを発行いたします。
方から評価を頂きまし規格化したデザイン(テーブル)のみdenormalize大陸における植生気候相互作用ユーザー様のテーブルの場合でもアップしていくことが容易にする。しかし事実上全ての人ものユーザーで簡単にdenormalize的に前線に絡んでいきます。そのま;利用している正規化されたアプローチ問題なく行えます。
非常にリーズナブル。
例として、これらを実現するために、のaspnet_*サービスのテーブル こちらの.
その内蔵スキーマ aspnet_Users
や aspnet_Membership
の後のテーブル以上のものを手にすることで拡張に関する情報を与えられたユーザ(ハッシュされたパスワード等)が aspnet_User.UserID
使用のその他の部分のスキーマのために参照整合性など。
ボトムラインでもよー良作もあれば普通のも、良いデザイン、属性別のテーブルが別の主体となる。
ることは間違いとして数百万の人々の記録に限り数千人のユーザーまた個別アドレス、電話や電子メールのベテーブルとして多くの人々を一つ以上のそれぞれの物です。Critialはな名前としての識別子として名前が表に出ることはありません。必ずテーブルに参加によりサロゲートキー(整数またはガイドが好ましくない名前です。