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