外部キーは、エンティティではなく、このエンティティの現在のバージョンにつながる必要があります

あなたが通りの改善を担当しているとしましょう。会社「PeterandSons」は、住所でフェンスをペイントする契約に署名しました:Kuibyshev、Starokolpaksky perulok、1。

同時に、データベースレベルで、契約は住所と会社にリンクされます。 。





5年後、ピーターは亡くなりました。ピーターの息子たちは彼の王朝を続けています(フェンスの絵)。





現在、契約を結んだ会社は「ボリスとデニス」と呼ばれています。同時に、クイビシェフの街はサマラと呼ばれるようになりました。さて、税額控除を受けるための文書を探し始めた場合、それを見つけることはほとんどありません-あなたのプログラムは、ボリスとデニスの会社があなたの指示でサマラの街にフェンスを描いたことを示しています。





このようなインシデントを回避するには、廃止されたものを含むすべてのバージョンのオブジェクトをテーブルに格納する必要があります。アドレスシステムに関しては、FIASがこれを支援します(アドレスオブジェクトに関する各レコードにはAOID識別子が格納されます-これはオブジェクトの特定のバージョンの識別子であり、AOGUID識別子はオブジェクトの名前が変更されたり、再割り当てされたりしても変更されない、アドレスオブジェクト全体の識別子。アドレスだけでなく、これまでに登録された法人のプロパティにも同様のシステムが存在すると思います。





手話の外部キー、corchaosis.ruからの画像
手話の外部キー、corchaosis.ruからの画像

データベース内の外部キーは、ドキュメントからオブジェクトにつながるのではなく、作成時の特定の実際のバージョンの各オブジェクトにつながる必要があります。





それ以外の場合、パスポートのスタンプで示された住所に顧客が住んでいないという事実に基づいて、銀行システムは顧客に高い割合を請求します。しかし実際には、これは同じ通りであり、以前は別の呼び方でした。等々。








All Articles