所以我有一個PG函數create_order
(語言是PL/PGSQL),它接受了很多參數。 我注意到,每次我修改參數名稱,它的類型,或者如果我添加了一個新的說法,我不得不放棄功能(CREATE OR REPLACE
不工作)PostgreSQL - 使用JSONB作爲單一函數參數的任何缺點
所以我一直在想,如果我只是接受一個jsonb
類型的單個參數,並把它稱爲一天......所以簽名會看起來像create_order(args jsonb)
我的問題是
- 這被認爲是不好的做法在PG「世界」(影響性能或其他某些方面)或者從編程的角度來看不好的做法
- 如果#1是不好的方法,最好是創建自定義複合類型並將其用作函數的參數?
如果您更改其簽名,重新創建函數有什麼錯誤?無論如何,你必須更新電話,不是嗎? – JGH
我不會先使用它,因爲你會有轉換參數類型的缺點。第二個我已經用在我的時間和給你的要求(有些不變的變化)我認爲這是一個更好的方法,我會去爲它。即使在您使用它的代碼中,每次都不需要更改(除了第一個,顯然),您可以保持更好的可維護性。我沒有把它作爲答案加入,因爲這是一個意見,我只是沒有投票結束,因爲這是一個很好的問題。 –