Q&A

回答の並べ替え:
投稿新規に質問を投稿する

RDBを使うのに制約が使えないけど、皆さんどうしていますか?

kiki kiki

2019-06-26 17:16

 RDBMSを使ってデータを持っているのだけど、外部キー制約も使えません。
 例えば「受注」テーブルで「顧客」テーブルの「ID」列を「顧客ID」列として持つのだけど、ここにはあくまでも自分で「顧客」テーブルの「ID」列の値を入れているだけで、外部キー制約がかかりません。
 一応アプリで、「顧客」の検索をして「ID」列の値を引いて「受注」テーブルに登録するようにしていますが、実際には存在しない値でも入力できてしまいます。
 また、既に「受注」にデータのある「顧客」を削除しても参照整合性制約がかからないので、単純に削除できてしまいます。
 データベース側に制約を設定しても、CELFで拾うことができません。
 この辺りの制約くらいは、サポートして欲しいです。

 こういった場合、皆さんはどうやって回避していますか?

rnts rnts
入力チェックや存在チェック機能を作りこみ、アプリ側で整合性を保つよう制御しています。