データベース設計に関する簡単な質問。データベーステーブル。それらを広げて、またはそれらを一緒にヌル?
私はUser
のデータをデータベースに保存しているので、ユーザーに関連付けられた2つのデータ形式を2つ(一見して)識別できます。 アカウントデータおよびプロファイルデータ。アカウントのデータは、ユーザーに不可欠であり、サービスを利用する能力(数または全く記録ができます/になり、一方、
ほとんどのプロファイルデータは、(ができ、多くの場合、NULL
になります)、オプション、および不要ですNULL
)
1-to-1
として2つのテーブルに分割する利点はありますか?単なるデザインの観点からは論理的だと思われますが、話すときはこれが普通です(good)?
ありがとう@i_forget - 利点はどこにあるのですか?例えば;ユーザーが作成されると、 'Account'テーブルと' Profile'テーブルの両方に行が作成されます。違いは、 'Account'データだけが必要である(*と' Profile'データは後で追加することができる*)ので、 'Account'行は' Profile'行が単なる 'NULL'の集合である値。 'Profile'行は、データがそれにプッシュされるまで未作成のままにしておかなければなりません。 – Dan
ユーザーは、ユーザーが何かを追加するまでプロファイルの日付エントリを作成せず、プロファイルデータの所有者/所有者を簡単に知ることができます。重要なアカウントテーブルに影響を与えずに、より多くのプロファイルデータ列を追加することができます。行レベルのロックとトランザクションにアカウント情報とinnodbが必要な場合は、プロファイルデータを検索可能にしたい場合は、 myisamのフルテキストインデックスを使用してください... – plague
質問を作成するときは無関係です。両方の表がOUTER JOINEDであるビューを使用すると、データをプロファイル側に置くたびに単独で作成されます。 –