いいえ、FKを配列に格納することは、汎用テーブルにとって決して良い考えではありません。まず第一に、あなたが通過で言及した事実があります:配列要素の外部キー制約は(まだ)実装されていません。これだけではアイデアが無効になるはずです。
深刻なパフォーマンスの問題によって停止されたPostgres9.3の機能を実装する試みがありました。 pgsql-hackersでこのスレッドを参照してください。
また、特定のユースケースでは配列を使用して読み取りパフォーマンスを向上させることができますが、書き込みパフォーマンスは急落します。考えてみてください。長い配列から単一の要素を挿入、更新、または削除するには、すべてのカンジされた要素の配列全体を含む新しい行バージョンを作成する必要があります。また、今後も深刻なロックの競合が発生します。
テーブルが読み取り専用の場合 、アイデアはより理にかなっています。ただし、マテリアライズドビュー を検討します。 非正規化された配列を上に 正規化された多対多の実装の例:
その間、MVはすべての結合テーブルを含め、1つのフラットテーブルを生成して、読み取りパフォーマンスをさらに向上させることができます(一般的なユースケースの場合)。このようにして、参照整合性をおよび取得します。 優れた読み取り(および書き込み)パフォーマンス-MVを管理するためのオーバーヘッドと追加のストレージを犠牲にして。