たとえば、カテゴリの階層を作成するには、同じテーブル内の別のカテゴリを指す列 'parent_id'を使用します。
これは外部キーである必要がありますか?短所/短所は何でしょうか?
はい。孤立(親のないエントリ)がないことを確認し、使用法に応じて、カスケード削除を定義すると、親が削除されると、そのすべての子も削除されます。
不利な点は、他の外部キーと同じように、わずかなパフォーマンスの低下です。
はい、そうすべきです。データベースのリレーションに、同じデータベース内の別のリレーションの主キーとして機能する属性がある場合は、それをFKにする必要があります。
外部キーに関連する利点 をお楽しみいただけます:
短所:
はい、そうすべきです。
利点(外部キーに関して):
本当のデメリットは考えられません。
はい、外部キーにする必要があります。
利点は、冗長性の少ない、より優れたデータモデルになります。