ナショナルIDを「レコードを識別する」の1つを使用するシステムを開発しています。クエリを簡単にするためにすべてのテーブルにnat_idを埋め込むのは良い考えですか?そうすることの欠点は何ですか?私は何か重要なことを逃すかもしれないので、ここの人々から意見を得たいだけです。ナショナルIDをプライマリキーとして使用する
答えて
@Odedが示唆しているように、法的およびプライバシー上の影響があります(あなたの国に大きく依存します)。
プライバシー問題の1つの例として、一部の国では、生年月日(一部の国では性別)が国のID番号の一部であることがあります。あなたのスキーマ内のすべてのテーブルにそれを複製することは、この情報へのアクセスを制限することを困難にするので、良い考えではないかもしれません。
- 必ずしもすべての国が国民IDシステムを持っている、とやるものは、異なるフォーマットを使用します。その上で は、いくつかの純粋に技術的な懸念があります。新しいフォーマットに対応する必要がある場合、スキーマ内のすべてのテーブルを変更する必要が本当にありますか?
- 国民ID(訪問者、亡命希望者、無国籍者)がいない可能性がある状況を想像することができます。データベースにどのように入力しますか?
- 一部の国では、国民IDに最も近いのはIDカードの番号であり、そのIDカードが再発行されるとその番号が変更されます。言い換えれば、同じ人物は、人生のさまざまな時点で異なるID番号を持つことができます。
私はサロゲート主キーを使用し、国家IDを属性として格納します。
代理人はどのようにして人々を特定できるのでしょうか?国民のID番号のような自然の鍵ではないだろうし、全く代わるものではない。 – sqlvogel
@aix申請は厳密に市民向けです。そうは考えにくいが、フォーマットの変更は議論にもたらすものである。私は現時点でサロゲートキーの使い方に傾いていますが、私は国民IDを使用した簡単なクエリのアイデアが気に入っています。 –
@dportas私は決してそれらを使用する機会があるので私は自然なキーを使用しないことを認めなければならない。これはその場合に当てはまるかもしれません。しかし、私は最初に確かめる必要があった。 –
国民IDが良い鍵を作るかどうかは、あなたの要件に大きく左右されます。ビジネスプロセスの一部として国民IDを記録する必要がありますか、その方法で一意に識別されているユーザー/従業員/誰か?あなたは合法的に人々にその情報を尋ねる権利がありますか?彼らは国民の身分証明書をあなたに開示する義務がありますか?これらのすべてにyesの場合は、おそらくそれをデータベースのキーにすることは理にかなっています。
サポートする必要がある国家IDの基準を理解していることを確認してください。例えば。長さ、データタイプ、任意のチェックディジット、および予想されるルールと一致しないレガシーコードまたは他の専用コードが使用中であるかどうかを示します。
プライバシーに関する懸念があり、データベースから実際のIDを取得する必要がない場合は、代わりに国民IDの安全なハッシュを保存できます。
これは電子政府アプリケーションであり、その国で多くの同様の大規模オンラインアプリケーションが存在するため、要件の一部です。安全なハッシュのアイデアが好きです。 –
- 1. バックナンバー - プライマリキーとして独自のdb行IDを使用
- 2. IDプライマリキーの代わりにプライマリキーを使用できますか?
- 3. EFコア:同時にプライマリキーと外部キーとしてIDを使用
- 4. Laravel 4プライマリキーとしてUUIDを使用
- 5. 既存の製品IDをプライマリキーとして再利用
- 6. Dapper.netのプライマリキーに 'Id'以外のプロパティを使用する
- 7. dynamodbでプライマリキーidにauto incrementを使用する方法
- 8. 最後のプライマリキーを取得 - IDなし - トリガを使用して挿入
- 9. .hbm.xmlマッピングファイル内のNHibernateを使用してプライマリキーID列の自動インクリメントを避けることができます
- 10. マップを使用してHibernate Annotationsを使用してプライマリキーを作成する
- 11. プライマリキーとIDの同じ列をHibernate
- 12. プライマリキーが 'id'でないクラスでpaper_trailを使用
- 13. プライマリキーとしてFacebookId?
- 14. プライマリキーとユニークインデックスの使用を確認してください
- 15. SQLを使用してプライマリキーの値を入力する
- 16. プライマリキーを使用してデータベースを更新する方法
- 17. エラー:プライマリキーを非プライマリキーとして再定義しようとしています
- 18. EF-CoreでID /プライマリキーにStringの代わりにGuidを使用する方法
- 19. プライマリキーとSQLで自動インクリメントを使用してデータベースを作成する方法
- 20. MySQL - プライマリキーとしての外部キーの使用
- 21. 外部キーを1対多のプライマリキーとしてのみ使用するEntity Framework
- 22. プライマリキーとIDのテーブル列を変更する
- 23. 「Enum」を「@ IdClass」と「@ Id」として使用している
- 24. 生成されたIDを常にIDとして使用してプライマリキーが作成されるテーブルに対して、hibernateでプライマリキーを定義する方法はありますか?
- 25. プライマリキーを使用したSQLクエリ
- 26. 複合プライマリキーを使用したDjangoアップデートモデル
- 27. プライマリキー(ユニークインデックス)を使用しないトランザクションレプリケーション
- 28. プライマリキーを使用したMySQLリンク列
- 29. RestKitプライマリキーを使用したリレーションシップマッピング
- 30. OIDCクライアントとIdentityServer4を使用して内部IDプロバイダートークンを使用して外部IDプロバイダートークンを交換する
法的な影響とプライバシーに関する懸念があります。 – Oded
米国でSSNが重複していることが判明しましたか?それ以外のところは、まったくの魔法固有の数字ではありません。 –
@Odedこれは、そのような国民IDの使用が普及している東南アジアの国の電子政府アプリケーションになります。 –