データベースの一部のテーブルを少し再設計して統合しています。私たちはかつて2つのテーブルを持っていたところで、'administrators'
と'users
'を組み合わせて、'users'
という1つのテーブルに結合しました。その変更を容易にするために、 'user_types'テーブルとの間の1対多のリンクテーブルである'user_user_types'
テーブルを作成しました。データベース内でこのデータを構造化するより良い方法はありますか?
'user_types'
テーブルを使用する理由は、さまざまなタイプの管理者が存在するためです.1つは、システム内のすべてのものにアクセスできるスーパー管理者です。古い設定では、'SiteAdmin'
と呼ばれる'administrators'
テーブルにビットフィールドがあり、特定の管理者がスーパー管理者であるかどうかを示しています。この新しいシステムに移行してから、私の考えでは、スーパー管理者になるユーザータイプが'user_types'
のテーブルに存在することになりました。しかし、これらのケースで正しいユーザーをそのユーザータイプにリンクするだけです。新しい 'users'テーブルに'SiteAdmin'
ビットフィールドを使用したいとします。私はそれは少し冗長だと思うが、余分な負荷があると主張し、'users'
と'user_types'
テーブルを一緒に参加させて、特定のユーザーがスーパー管理者であるかどうかを判断する必要があるSQLサーバーでは、
私の質問はどのように優れているのですか? SQLサーバーのヒットは、2つのテーブルに参加することで素晴らしいですか?ビットフィールドをスーパーユーザーにフラグを付けるために 'users'テーブルに追加することを保証しますか?
ありがとうございます!