関係データベースは、外部キーを使用して参照整合性を強制し、テーブルの関係を管理します。外部キーは、関連データをリンクすることで、結合操作の整合性と正確さを確保します。一方、MongoDBは、関係の管理にアプリケーション中心のアプローチを取ります。MongoDBでは、共通のライフサイクルを持つ関連データを単一のドキュメントに埋め込むことができ、強い関係では外部キーの必要性がなくなります。MongoDBの$lookup操作は、左外部結合に似た結合操作の整合性を確保します。関係データベースから移行する際、`ON DELETE CASCADE`は埋め込みに、`ON DELETE SET NULL`は拡張参照に翻訳されます。`ON DELETE RESTRICT`は、MongoDBでは削除管理のアプリケーションロジックが必要です。更新アクションは、不変の `_id` を参照に使用することで避けることができます。多対多の関係は、MongoDBでは参照の配列に変換されます。MongoDBのドキュメント埋め込みと集計パイプラインは、ドキュメントの関係と整合性を維持するためのフレキシブルな方法を提供します。
dev.to
Foreign Keys: A must in SQL, but not in a Document Database?
