2011-12-22 6 views
2

ナショナルIDを「レコードを識別する」の1つを使用するシステムを開発しています。クエリを簡単にするためにすべてのテーブルにnat_idを埋め込むのは良い考えですか?そうすることの欠点は何ですか?私は何か重要なことを逃すかもしれないので、ここの人々から意見を得たいだけです。ナショナルIDをプライマリキーとして使用する

+5

法的な影響とプライバシーに関する懸念があります。 – Oded

+1

米国でSSNが重複していることが判明しましたか?それ以外のところは、まったくの魔法固有の数字ではありません。 –

+0

@Odedこれは、そのような国民IDの使用が普及している東南アジアの国の電子政府アプリケーションになります。 –

答えて

8

@Odedが示唆しているように、法的およびプライバシー上の影響があります(あなたの国に大きく依存します)。

プライバシー問題の1つの例として、一部の国では、生年月日(一部の国では性別)が国のID番号の一部であることがあります。あなたのスキーマ内のすべてのテーブルにそれを複製することは、この情報へのアクセスを制限することを困難にするので、良い考えではないかもしれません。

  1. 必ずしもすべての国が国民IDシステムを持っている、とやるものは、異なるフォーマットを使用します。その上で

    は、いくつかの純粋に技術的な懸念があります。新しいフォーマットに対応する必要がある場合、スキーマ内のすべてのテーブルを変更する必要が本当にありますか?
  2. 国民ID(訪問者、亡命希望者、無国籍者)がいない可能性がある状況を想像することができます。データベースにどのように入力しますか?
  3. 一部の国では、国民IDに最も近いのはIDカードの番号であり、そのIDカードが再発行されるとその番号が変更されます。言い換えれば、同じ人物は、人生のさまざまな時点で異なるID番号を持つことができます。

私はサロゲート主キーを使用し、国家IDを属性として格納します。

+0

代理人はどのようにして人々を特定できるのでしょうか?国民のID番号のような自然の鍵ではないだろうし、全く代わるものではない。 – sqlvogel

+0

@aix申請は厳密に市民向けです。そうは考えにくいが、フォーマットの変更は議論にもたらすものである。私は現時点でサロゲートキーの使い方に傾いていますが、私は国民IDを使用した簡単なクエリのアイデアが気に入っています。 –

+0

@dportas私は決してそれらを使用する機会があるので私は自然なキーを使用しないことを認めなければならない。これはその場合に当てはまるかもしれません。しかし、私は最初に確かめる必要があった。 –

2

国民IDが良い鍵を作るかどうかは、あなたの要件に大きく左右されます。ビジネスプロセスの一部として国民IDを記録する必要がありますか、その方法で一意に識別されているユーザー/従業員/誰か?あなたは合法的に人々にその情報を尋ねる権利がありますか?彼らは国民の身分証明書をあなたに開示する義務がありますか?これらのすべてにyesの場合は、おそらくそれをデータベースのキーにすることは理にかなっています。

サポートする必要がある国家IDの基準を理解していることを確認してください。例えば。長さ、データタイプ、任意のチェックディジット、および予想されるルールと一致しないレガシーコードまたは他の専用コードが使用中であるかどうかを示します。

プライバシーに関する懸念があり、データベースから実際のIDを取得する必要がない場合は、代わりに国民IDの安全なハッシュを保存できます。

+1

これは電子政府アプリケーションであり、その国で多くの同様の大規模オンラインアプリケーションが存在するため、要件の一部です。安全なハッシュのアイデアが好きです。 –

関連する問題