注文番号と明細番号の複合キー
注文の明細で、注文番号も明細番号も単独では重複し、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 行 |
列ごと・列の組ごとの判定
| 種類 | 列 | 異なる値の数 | 空欄の数 | 判定 |
|---|---|---|---|---|
| 列 | order | 2 | 0 | 重複あり(1 行) |
| 列 | line | 2 | 0 | 重複あり(1 行) |
| 列 | qty | 1 | 0 | 重複あり(2 行) |
| 組 | order + line | 3 | 0 | 候補(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 回で候補になりません。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 判定はサンプルの行だけで行います。今のデータで重複がなくても、将来のデータで重複しないとは限りません。意味のある識別子(会員番号・注文番号など)かどうかで最終的に決めてください。
- 値の比較は完全一致です。前後の空白・大文字と小文字・全角と半角の違いは別の値として扱うため、取り込み先で正規化すると重複することがあります。
- 列の組は最大 3 列まで、調べる組は最大 5,000 組までです。列が多い CSV では、組の最大の列数を小さくして調べてください。
- ファイルは UTF-8 として読みます。Shift_JIS の CSV は文字化けするため、表計算ソフトで UTF-8 として保存し直してから使います。
ご利用にあたって
- この結果は設計の参考です。実際に表を作る前に、データの意味と将来の増え方にもとづいて主キーを決めてください。
- 大きなファイルでは、列の組を調べるのに時間がかかることがあります。そのため、調べる組の数に上限を設けています。