0

データベース最適化のベスト プラクティスを提案できますか? これが私のデータベーススキーマです。

group(id, name, status)
users(id, group_id, parent_id, username, password)

company(id, name, address, phone)
agent(id, agent_code, name, address, phone)

このスキーマには、スーパー管理者、企業ユーザー、エージェント ユーザー、エンド ユーザーの 4 種類のユーザー グループがあります。

各エンティティ(会社、エージェント)のユーザーを紹介する最良の方法は何ですか?

私には2つの選択肢があります

A. company_id および agent_id としての users テーブルの外部キー

users(id, group_id, parent_id, company_id, agent_id, username, password)

B. company and agent テーブルの user_id としての外部キー

company(id, user_id, name, address, phone)
agent(id, user_id, agent_code, name, address, phone)

データベースとしてmysqlを使用し、カスケード参照を使用しています。会社/エージェントを削除すると、関連付けられたユーザーはオプション A に従って自動的に削除されます。ただし、オプション BI の場合、会社/エージェントの関連付けられたユーザーを削除するには、2 番目のクエリを実行する必要があります。それで、あなたは何を提案しますか?

更新: 子ユーザーについて言及するのを忘れていました。会社/エージェントのユーザーは、users テーブルの parent_id によって参照されるサブユーザーを持つことができます。

4

1 に答える 1

1

オプション A はいいですね。

例:- 100 人のユーザーが 5 つの会社に関連付けられていると仮定できるため、1 つのクエリで 1 人のユーザーを削除できます...

于 2013-10-25T08:16:19.040 に答える