実は、僕はまだデータベースのテーブルの設計が終わっていません。
(裏でoffice2007インストールしていたことは内緒です)
なのでデータベースのことで頭の中は一杯です。他のことは書けません。
そんな訳で、今日のネタも
初心者向け
のテーブルの設計についてです。
ちなみに前回は、こちら。
http://blogs.wankuma.com/rti/archive/2006/12/14/50719.aspx
?
早速ですが、今回は前回突っ込みの多かったキーについて説明します。
前回のテーブルの内容にあった「利用者テーブル」をもう一度見て下さい。
利用者名簿テーブル
・利用者番号(キー)
・利用者氏名
ここで言うキーというのは、レコードを識別するための一意(他と重複しない)な値だと取りあえずは覚えておいて下さい。
プライマリーキーとか主キーと言う方が一般的です。
データベースエンジンがレコードにアクセスする時、このキーを使ってレコードを特定します。
従って、テーブルに一意なキーを設けることで、より高速にレコードにアクセスできます。
複数の項目の値の組み合わせが一意なら、複数の項目をキーにすることもできます。
(前回のコメントで、はつねさんが仰っていましたね)
例えば、以下の「貸出履歴テーブル」は「連番」という一意な値を設けて、これをキーとしています。
貸出履歴テーブル
・連番(キー)
・貸出日
・利用者番号(インデックス)
・書籍番号(インデックス)
・返却日
しかし、例えば一人の利用者が一度に借りられる本が1冊であるなら、「貸出日」と「利用者番号」の値の組み合わせは常に一意になりますので、この二つの項目をキーにしても良いことになります。
貸出履歴テーブル
・貸出日(キー)
・利用者番号(キー)
・書籍番号(インデックス)
・返却日
こんな感じですね。
ただ、僕はこの方法があまり好きではなくて、先ほどの例のように「連番」という項目を設けることの方が多いです。
理由としては、いろいろあるのですが、うまく説明できる自信がないの後日改めて・・・^^;
皆さんは、複数項目をキーにすることって良くやりますか?
逆に僕と同じ派だという人はいるのかな?