プライマリキー

プライマリキーをどう決めますか?

  1. ある集合の中の1つを特定するキーを探してそれをPKにする
  2. ある出来事・事実を存在(特定)させるためにつけるID(単なる連番)をPKにする

世の流れは2番・・?

1番

f:id:niraikanaibird:20061027032057j:image

select
  売上明細.商品コード
  ,商品.商品名
from 
  売上 join 売上明細 on (売上.売上番号 = 売上明細.売上番号)
  売上明細 join 商品 on (売上明細.商品コード = 商品.商品コード)
where
  売上.売上日 = 20061101
  and 商品.商品コード = 12345
order by
  売上明細.売上明細番号

2番

f:id:niraikanaibird:20061027032058j:image

select
  商品.商品コード
  ,商品.商品名
from 
  売上 join 売上明細 on (売上.ID = 売上明細.売上ID)
  売上明細 join 商品 on (売上明細.商品ID = 商品.ID)
where
  売上.売上日 = 20061101
  and 商品.商品コード = 12345
order by
  売上明細.ID


直接SQLを書いたときは2番の方がカラムが増える分だけ、ちょっとだけめんどくさいかなあ。
ORMで実装したときの比較とか考えないと駄目かしら。