1

データベースと、データベースを編集するアプリケーションがあります

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 のままにし、作成された新しい街路についてのみ更新して、それぞれを追加したユーザーを追跡します。

どちらが優れているのか、その理由は?

4

2 に答える 2

3

外部キーを使用することをお勧めします。参照整合性が適用されます。

外部キーの利点については、リンクを確認してください

于 2013-01-04T16:21:57.860 に答える
0

システムの一部のユーザーが 1 人ではなくなり、そのために USER テーブルから削除する必要がある場合、何をするつもりですか?

于 2013-01-04T16:19:22.347 に答える