注文番号と明細番号の複合キー

注文の明細で、注文番号も明細番号も単独では重複し、2 つを組み合わせたときだけ一意になる例です。数量はすべて同じ値で、候補にならないことも確かめます。

入力

CSV

order,line,qty
1,1,5
1,2,5
2,1,5

区切り文字

カンマ(,)

1 行目は見出し(列名)

はい

調べる列の組の最大の列数

2 列の組まで

空欄(空白だけの値を含む)を NULL として扱う

はい

結果

エラー 0 件・警告 0 件・情報 1 件

指摘(エラー・警告・情報)

  • 情報 全体 この CSV の行だけでの判定です。行が増えると重複や空欄が現れることがあります。値の比較は完全一致で、前後の空白・大文字小文字・全角半角の違いは別の値として数えます。主キーにしてよいかは、データの意味(将来も重複しないか)で決めてください。
データの行数3 行
列数3 列
単独で候補の列なし
列の組で候補1 組
判定に含めなかった行0 行

列ごと・列の組ごとの判定

列ごと・列の組ごとの判定
種類列異なる値の数空欄の数判定
列order20重複あり(1 行)
列line20重複あり(1 行)
列qty10重複あり(2 行)
組order + line30候補(2 列の組で一意)

検算(この結果になる理由)

order は 1 が 2 回、line も 1 が 2 回、qty は 5 が 3 回で単独の候補はありません。組 (order,line) は (1,1)・(1,2)・(2,1) で一意です。(order,qty) は (1,5) が 2 回、(line,qty) は (1,5) が 2 回で候補になりません。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • この結果は設計の参考です。実際に表を作る前に、データの意味と将来の増え方にもとづいて主キーを決めてください。
  • 大きなファイルでは、列の組を調べるのに時間がかかることがあります。そのため、調べる組の数に上限を設けています。

ほかの入力例