データベースと、データベースを編集するアプリケーションがあります
ADDRESS (ID, STREETID, NUMBER) という住所のテーブルがあります
STREET (ID、STREETNAME、CREATIONUSERID) という通り名のテーブルがあります。
USER(ID、USERNAME、PASSWORD)というユーザーのテーブルもあります
テーブル STREET のストリート名はすでに入力されています。このテーブルは、ユーザーがアプリケーションのどこかに住所 (フィールド ADDRESS.STREETID) を入力するためのルックアップ テーブルとして使用しますが、ユーザーは、後で使用するために STREET に挿入される新しい通りを入力する必要がある場合があります。ユーザーが私のテーブルにストリートを追加したときに、どのユーザーが追加したかを追跡できるようにしたいと考えています。
今、私が考えているように、2つのオプションがあります:
1つ目: STREETのデフォルト通りが参照する偽のユーザーを作成し、作成された新しい通りに対して外部キー制約(USER.IDを参照するSTREET.CREATIONUSERID)を作成します
2 番目:外部キー制約を作成せず、STREET のデフォルトの街路については CREATIONUSERID を null のままにし、作成された新しい街路についてのみ更新して、それぞれを追加したユーザーを追跡します。
どちらが優れているのか、その理由は?