DB2 iSeriesデータベースを備えたシステムがあります。システムの一部を書き換え、SQL ServerとEntity Frameworkを使用して実装しています。
もともと、SQL Serverに移行するテーブルとDB2のテーブルとの間にあまり関係がないと信じるようになりました。ただし、外部キー参照がそこにある場所をいくつか見つけています。
データベース全体で外部キー参照を維持する必要がある、このようなシナリオを処理する標準的な方法はありますか?私はいくつかのオプションを考えることができます:
誰か他のオプションを見ていますか、そして最善のアプローチは何でしょうか?
DB2側にSQL Server側への読み取り/書き込み、またはその逆が必要になるものはないと考えています。これにより、アプリケーションからのデータベースアクセスを分離しておくことができます。外部キーの参照を保持するだけだと思います。
外部キー制約が元のデータベース内の他のテーブルをポイントしていない場合(つまり、SQL ServerがSQL Serverをポイントしていない場合など)、それらの外部キーを削除します。それらは役に立たない。
それらが他のテーブルを指している場合、おそらく制約を満たすために必要なデータをコピーする必要があります。 (うーん)。そのいずれか、またはその関係を再検討して、おそらく外部キー制約を再度削除してください。
(少なくともDB2 for iで)検討すべきもう1つのことは、情報の制約です。私はDB2 LUWにそれらがあったことを知っています。それらは強制されない制約でした。クエリプランを選択するときにオプティマイザを支援しましたが、実際の制約として強制されていません(違反する可能性があります)。もちろん、これらの副作用として、情報の制約により、必要なデータが見落とされることがあります。
また、SQL Serverに同様の機能があるかどうかは不明です。私はまだそのプラットフォームを学んでいます。