多くのデータベースと同様に、名前は一意ではないため、シリアル生成された数値の主キーを持つ人のテーブルがあります。
ID NAME STUFF
---------------
101 Bob 20
102 Bob 30
また、他のいくつかのテーブルでは、これらの ID を外部キーとして参照しています。
ORDER PERSON NOTE
-------------------
1 02 Blah
2 01 Foo
(FK は一意の制約を持つ列を参照する必要があるため、ID の代わりに名前を FK として使用することはできません)。私のデータ入力は手動なので、GUI (現在は Mac の pgAdmin または LibreOffice) を使用すると、注文テーブルで作業するときに数値 ID の代わりに人の名前を確認する方がはるかに簡単です。この一見単純な問題に対する解決策をいくつか考えましたが、どれもうまくいきません。
A) ビュー - 編集不可。トリガーを使用してビューを編集可能にする方法は知っていますが、これを使用して編集可能なビューを許可する GUI エディターはありません。
B) Order テーブルに名前列を追加し、トリガーを使用してすべてを同期させます。これは魅力的ですが、データが重複しており、テーブル構造が進化すると頭痛の種になります。Order name 列がトリガーで読み取り専用に設定されている場合は多少改善されますが、それでも多くの落とし穴があります。
C) 私が本当に欲しいのは、基礎となるデータの整合性を損なうことなく、GUI エディターで個人 ID と対応する名前を任意のテーブルに表示するように切り替える方法です。
これが明確であることを願っています。必要に応じて詳細を提供できます。助けてくれてありがとう!