排他的なユーザ属性を持たせるときのテーブル設計について知りたい
Webアプリの開発を一人でしているものです。今まで、アプリケーション側をメインに触ってましたが、いざDB設計をしようと思ったら分からないことだらけで、上手く情報を見つけることすらできず困っています。
現在、Web上でユーザ同士をマッチングするアプリケーションを開発しています。
全てのユーザはそれぞれ、AとBどちらかのユーザ属性を選ぶことが可能で、どちらかにしか所属できません。またユーザ属性に応じてテーブルの持つカラムが異なります。
一方で、全てのユーザはメールアドレスとパスワードのような共通の値も必要です。
そこで現在の設計では、最初にメールアドレスとパスワードのような共通の値をもつテーブル(ユーザテーブル)を作成し、その後、A属性のテーブルとB属性のテーブルがユーザテーブルを参照する形にしています。
上手く伝わっているのかも微妙ですが、果たしてこれで良いのか自信がありません。
「何が言いたいのかまとまってないので、まずはこれをやって整理してみろ」等なんでも構いません。何かお力添えいただければ幸いです。
※私としては、現在、DBの設計パターン集のようなものが見つかれば参考になるだろうと思い探しているのですが見つかりません。併せてご教授頂ければ幸いです。