識別子の重複を防ぐ
主キーは各行を一意に識別し、NULLを許容しません。UNIQUEは、主な識別子を変えずに別の候補キーを保護します。ただしUNIQUEだけではNULLを許容するため、必須のemailを候補キーとして扱うならNOT NULLも付けます。UNIQUE (order_id, line_no)のように複数の列を指定すれば、line_no単体は重複しても、order_idとの組み合わせでは重複しないことを保証できます。
別の注文ではline_no 1を使えても、同じ注文内ではline_no 1を重複させない制約はどれですか?