データベース プロジェクトで 6 つの主キーを使用できるか教えてください。データベース プロジェクトを作成し始めたばかりで、1 つと 2 つが可能であることはわかっていますが、6 についてはわかりません。
5 に答える
複数の主キーとはどういう意味ですか? 説明できますか?データベースで複数の主キーを要求している場合は、テーブルの主キーごとに取得できます。ただし、同じテーブルで 2 つ以上の主キーを使用することはできません。
テーブルには、1 つの主キーと複数の一意のキー (複合キー) のみを含めることができます。
例: - 従業員テーブル
EmpID(Not null) ManagerID(null)
001 001
002 002
ここで、EmpId はプライマリ キーであり、manager Id は複合キーです。
このようにして、テーブルの列を一意にすることができます。
複数言った瞬間に複合キーになります。技術的には、複数の列を持つ複合キーを持つことができます。しかし、テーブル内の複合キーとして 6 つのキーを持つという要件を満たすようなユース ケースが何であるかを知りたいと思っています。
データベースではなく、テーブルに複数の主キーを持たせる方法を尋ねようとしていると思います。(厳密に言えば、これは複合キーになります)。
あなたは確かにこれを行うことができます. たとえば、mysql の構文は次のとおりです。
CREATE TABLE tbl_name (
col1 int,
col2 int,
col3 int,
col4 int,
col5 int,
col6 int,
col7 int,
col8 int,
col9 int,
PRIMARY KEY (col1, col2, col3, col4, col5, col6));
そうは言っても、自分が何をしているのか本当にわかっていない限り、これはおそらくやるべきことではありません。私は確かに、大きな複合キーを持つ非常に複雑なビジネス モデルを扱ってきました。
(たとえば、あるクライアントには、複合キーに 5 つのフィールドを持つ多数のテーブルがありました。たとえば、特定の在庫/注文品目の salesOrganizationNumber、salesRepNumber、locationId、styleNumber、styleType を表しています。)
しかし、あなたの質問は非常に基本的なものなので、スキーマの設計方法についてもっと詳細なサンプルの質問をする必要があると思います。おそらく、主キーがはるかに小さいことがわかるでしょう。
はい、テーブルごとに複数のキーを持つことができ、各キーに複数の属性を持つことができます。定義上、各キーは既約である必要があります。つまり、そのキーの一意性を維持するために必要な列の最小限のセットが含まれていることを意味します。
あなたのコメントに基づいて、複数のキーではなく、複数の属性を持つ 1 つのキーを持つことについて実際に問い合わせているのではないかと思います。この違いは重要であり、それを理解する必要があります。このような質問に答えるために、本を読んだり、データベース設計の基礎に関するコースを受講したりすることを検討してください。
テーブルと同じ数の主キーをデータベースに含めることができます。テーブルごとに 1 つの主キーを使用できます。
もちろん、テーブルごとに複数のインデックスを持つことができますが、それらは主キーとは見なされません。
複数の列 (好きなだけ列) から主キーを作成することもできますが、これは依然として 1 つの主キーであり、単なる複合キーです。
複数の主キーとは大きく異なります。前者では、完全なキーが一意である限り、キーの複合部分を複製できます。後者(許可されている場合)では、主キーのプロパティであるため、各部分が一意である必要があります。