さまざまなユーザーの詳細を MySQL データベースに保存しています。もともと、データは UserIds とリンクされ、必要に応じてデータを表示および操作するための複雑な呼び出しを介して出力されることを意味するさまざまなテーブルに設定されていました。新しいシステムをセットアップする場合、これらすべてのテーブルを関連コンテンツの 1 つの大きなテーブルに結合することはほとんど理にかなっています。
- これは助けになりますか、それとも邪魔になりますか?
- 呼び出し、更新、または検索/操作の速度に関する考慮事項は?
私のテーブル構造の例を次に示します。
- users - UserId、ユーザー名、電子メール、暗号化されたパスワード、登録日、IP
- user_details - Cookie データ、名前、住所、連絡先の詳細、所属、人口統計データ
- user_activity - 投稿、最終オンライン、最終閲覧
- user_settings - プロフィール表示設定
- user_interests - 広告のターゲティング可能な変数
- user_levels - アクセス権
- user_stats - ヒット、集計
編集:これまでのすべての回答に賛成票を投じました。それらにはすべて、本質的に私の質問に答える要素があります。
ほとんどのテーブルには 1 対 1 の関係があり、これが非正規化の主な理由です。
これらのセルの大部分が空のままである可能性が高いときに、テーブルが 100 列以上にまたがると問題が発生しますか?