SQL の外部キーとしての複合キー
指定されたシナリオでは、(beggingTime で構成される複合主キーを持つチュートリアル テーブルがあります) 、day、tutorId) と主キー groupId を持つグループ テーブル。チュートリアルで複合キーを参照する外部キーをグループ内に作成することで、これらのテーブル間の関係を確立することを目的としています。
これを実現するには、グループ テーブルに次の外部キー制約を追加できます。
FOREIGN KEY (`beggingTime`, `day`, `tutorId`) REFERENCES tutorial(`beggingTime`, `day`, `tutorId`)
ただし、複合主キーを外部キーとして使用すると、パフォーマンスに影響を与える可能性があることに注意することが重要です。 SQL は、整数の主キーまたは代理キーに基づいてリレーションシップを処理するように最適化されています。複合キーを使用すると、さらに複雑になり、クエリの効率が低下する可能性があります。
この問題を軽減するには、自動インクリメント整数列などの代理主キーを含めるようにチュートリアル テーブルを再構築することを検討してください。これにより、複合キーの一意性を維持しながら、2 つのテーブル間の関係をより効率的にすることができます。複合キーは、必要に応じて簡単に検索できるように、一意のインデックスとして維持できます。
以上がSQL で複合キーを外部キーとして効率的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。