データベース最適化のベスト プラクティスを提案できますか? これが私のデータベーススキーマです。
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 によって参照されるサブユーザーを持つことができます。