これは別の観点から見ています。
あなたの状況では、おそらく1つのテーブルで十分です。ただし、他にも考慮事項があります。
1)ボリューム。小さなテーブルでは、フラグでのフィルタリングがパフォーマンスに大きな影響を与えることはありません。大きなテーブル(数百万行)では、フラグをインデックスに配置する必要があります。大きなテーブルのインデックスに低いカーディナリティフラグを設定すると、パフォーマンスが低下する可能性があります。
2)欠陥。テーブルにフラグを設定するには、ほとんどすべてのクエリでフラグを使用する必要があります。十分に大きい、または十分に複雑なシステムの場合、誰かがそのフラグを見逃すでしょう。リスクの判断は、アクティブ化されていないユーザーを誤って選択した場合のコストによって異なります。
リスクを軽減する1つの方法は、ビューを使用することです。 2つのテーブルのソリューションを実装する場合は、UNION ALLを使用してビュー(All_Users)を使用します。 1つのテーブルのソリューションを実装する場合は、アクティブ化されたユーザーのみのビューを作成し、代わりにそのテーブルを使用してください。コアテーブルを変更する必要があるのは、メンテナンス機能だけです。