次の表を想像してください。私の場合、[unique+not null = primary key]であるname
必要があるunique
と完全に確信しています。not null
したがってname
、主キーです。何らかの理由で (おそらく習慣による)、id
int 型の主キー列を自然に作成しました。
その他の仮定: 私は絶対にテーブルに保持する必要があり、 (タイプの) が 20 文字を超えないことname
を絶対に確信しています。name
varchar
ここで、私の最初の質問は [おそらくイエスまたはノーが予想される近い質問] です。このようなテーブルを作成した場合、BCNF ボイス-コッド正規形を尊重しますか?
id
2 番目のオプションの質問 [おそらく未解決の質問]:この場合、列を作成するのは適切ですか?
CREATE TABLE Y (
id int,
name varchar(20),
PRIMARY KEY(id, name)
);