2017-10-04 6 views
0

提供された属性に基づいてアクセス時にプライマリキーを作成する方法はありますか?たとえば、学校のデータベースがあり、コースのコードがLLに含まれているエンティティがあり、資格がLLLAの形式であるとします。新しいコースがこのエンティティに入力されるたびに、そのレコードの主キーは、LL \ LLLAの形式で一緒に修正される2つの属性です。 (例:IT \ BTEC、RM \のGCSE)がアクセス時にカスタムプライマリキーを作成する

(この属性は、別のテーブルで参照される必要があるだけで、参照のために、複合キーはここにオプションではありません)

+1

PKは、そのテーブルに属するフィールドのみで作成することができます。あなたの質問は私には不明です。 –

+0

編集した質問がより明確になります。 (私はテーブルの他の2つのフィールドを使ってプライマリキーを作成することを意味していました) –

+2

これはデータベースの操作方法ではありません。通常のPKを作成します(例:オートナンバー。これを他のテーブルの外部キーとして使用します。結合された文字列が必要なときは、テーブルを結合して列を連結します。計算された値をデータベースに格納しないでください。 [計算されたフィールドはテーブルではなくクエリに属します] – Andre

答えて

1

あなたは複合主キーを作成することができますし、別の表でそれを参照してください、しかし私はそれをお勧めしません。予想通り、両方の列を関連するテーブルに伝播すると、両方のテーブルのすべての結合が複合キーの両方の列を参照する必要があります。 Accessは、カスケード更新と削除の形でコンポジットキーを扱う際に少し役立ちますが、コンポジットキーを扱う際の全体的な労力はおそらくそれほど価値がありません。

サロゲート主キーとしてオートナンバー列を使用し、ナチュラルキーを表す列にユニークなインデックスを作成することをお勧めします。

関連する問題