私のデータベースに登録されているユーザーの一部は、開業医です。SQLデータベース設計 - フラグまたは新しいテーブル?
これはいずれかによって表すことができる:
- is_practitionerフラグは、ユーザテーブルに
- USER_IDカラム
と別個開業医テーブルをそれがどのアプローチ私には明らかではありません優れている。フラグの
利点:
- 少ないテーブル
- ユーザ当たりただ1つのID(したがって混乱の可能性なし、また、他のテーブルで使用するためのIDでない混乱)
- 柔軟性(Iフィールドが開業医のみであるかどうかを判断する必要はありません)
- 開業医のユーザーレベルの情報を見つけるためのスピードメリット
利点:
- 何の情報、特に私の場合は実務
を見つけるための実践者のみ
質問
- は、他の考慮事項はありますか?
- どちらのアプローチも優れていますか?
感謝。あなたの最初の段落については、いずれのケースでもis_consultantフラグまたはConsultantテーブルによって簡単にはカバーされませんか?なぜあなたはWHERE句が優れていると言いますか?なぜ1対多の関係が数多くあるのは、別のテーブルを優先して物事を傾けるのですか? –
開業医にとっては、旗、コンサルタントのためのフラグ、あなたはそれぞれのProf Typeのフラグを追加することができます。そのような場合、1つのテキストフィールドが同じ仕事をしていました。 実務家のテーブル、もう1人はコンサルタント:実務者またはコンサルタントであるユーザーを探したいとします。実務者とコンサルタントのユーザーからの2つの左外部結合です。 ProfType In( 'PRAC'、 'CONS')のどこで行えたのでしょうか。 1対多の性質:ターゲットフィールドに独自の属性がある場合は、テーブルを使用し、それ以外の場合はフィールドを使用します。シンプルなデザインでシンプルなセットアップを、複雑なものにも対応 –