/ / PostgreSQL - 単一の関数引数としてJSONBを使用することのマイナス面 - postgresql、function、plpgsql

PostgreSQL - 単一の関数引数としてJSONBを使用することのあらゆる欠点 - postgresql、function、plpgsql

だから私はPG機能を持っている create_order (言語はPL / PGSQLです)これはかなりの数の引数を受け入れます。 引数名、その型を変更するたびに、または新しい引数を追加する場合は、関数を削除する必要があることに気付きました。CREATE OR REPLACE 動作しません)

だから私は私がタイプのただ一つの引数を受け入れるならどうなるか考えてきました jsonb そしてそれをその日と呼びます...それで署名は以下のようになります create_order(args jsonb)

私の質問は

  1. これはPGの「世界」(パフォーマンスやその他の側面に影響を与える)の悪い習慣、またはプログラミングの見地からの悪い習慣と見なされるか
  2. #1が悪いアプローチであるならば、カスタム複合型を作成してそれを関数への引数として使うほうが良いでしょうか?

回答:

回答№1は1

私は大きな問題を見ていない jsonb 多分個々のパラメータが入力値が何であるかをより明確にするということを除いて、関数パラメータ。しかし、それはドキュメンテーションで解決できないことは何もありません。

一方、シグネチャが変更されたときに関数を削除して再作成しても問題ありません。それは呼び出しサイトが更新される必要があることを思い出させるものとして役立つかもしれません。

私はあなたにぴったりのアプローチと問題を解決することをお勧めします - PostgreSQLの観点からは関係ありません。