質問: いつもここでは、大変お世話になっております。 今回新しいサービスを開発することになり、ユーザテーブルの切り分けで多少悩んでおります。 皆様のご意見を伺えれば幸いです。 userテーブル | user_id | user_email | user_pass | user_cus_id | user_last_name | user_first_name | | --- | --- | --- | --- | --- | --- | | 1 | yamada@gmail.com | 12345678 | hogefuga | 山田 | 太郎 | 現在はこのようなテーブル構成としており、省略しておりますが実際は12レコード存在しています。 ユーザーが登録する時に2種類のタイプ(フリーとプレミアム)を考えており、 フリーではメールアドレスとパスワードだけで登録頂く予定です。 そうすると、フリーで登録した場合は残り9つのカラムが nullになるため運用上どうなのかと疑問に思いました。 user_free | user_id | user_email | user_pass | | --- | --- | --- | | 1 | yamada@gmail.com | 12345678 | user_premium | user_id | user_cus_id | user_last_name | user_first_name | | --- | --- | --- | --- | | 1 | hogefuga | 山田 | 太郎 | としてテーブルを分け、null値が発生しないように努めるべきなのかどちらが良いかご意見を頂ければ幸いです。 個人的にはnullが増えるのもキモチワルイですが、テーブル数が増えるのもキモチワルイです。 開発時点なのでなんとも言えませんが10万レコードを超えるようなサービスでも無い気がします(超えたらどうしよう) 以上となりますが、よろしくお願いいたします。
回答: 本来であればuser_idで紐付けるように、フリー部分とプレミア部分をわけるのが妥当でしょう。