C#/ .NET WinForms/Desktopアプリケーションにセキュリティを追加する必要があります。私はOracle DBのバックエンドを使用しています。デスクトップアプリの「ユーザー」/「役割」テーブルの代理キー?目的は何ですか?
テーブルは単純です:ユーザー(ID、名前)、役割(ID、役割)、ユーザーロール(ユーザーID、役割ID)。
Windowsのアカウント名を使用してUserテーブルにデータを入力しています。ロールテーブルは今のところ単に「管理者」、「スーパーユーザー」、「基本ユーザー」...
私はこれらの名前を制御しない場合でも2人で同じWindowsアカウント名を持つことはできませんでした管理(netopsは、なぜ私はそれを管理する必要がないので、私はWindowsアカウントを使用したい;))。ロールテーブルの場合、私は再び重複価値を持つべきではありません - 私は入力を制御し、3つしかないでしょう(1年以内に戦術アプリがなくなる)。 UserRoleは、ユーザーとロールの多対多の関係を表すための結合テーブルであるため、誇張されたキーは正当化されません。
簡単な質問 - なぜユーザーとロールテーブルで「ID」(int)を使用するのが難しいですか?ここでポイントや利点は?これは「私はいつもそうしました」というものですか?それとも、私はしばらくのうちにこれをやっておらず、その理由を忘れていますか?
"代理キーを持っていても行を一意に識別する別の列の組み合わせがない場合は、エンティティ定義の権利があるかどうか再度考えてください。" - ああああ。あなたが今までに1000倍も簡単にしなければならないことを明示的に更新することを除けば、これは私が探していた文章でした。 Geeze、私はこの基本的なものをどれくらい忘れてしまったのだろうと思っています。そして、私が学んだ新しい材料の割合は、(ケリー・バンディーのプリンシパル) – dferraro