この特集のトップページへ
>
Chapter 3:データストア層の構築
3.2 データベーステーブルの設計
先に説明したように,Fig.3-1に示したビジネスアプリケーションを構築するには,少なくとも,伝票情報,顧客情報,製品情報,請求情報という4つのデータベーステーブルが必要になる。ここでは,各テーブルにどのようなフィールド(列)を用意しなければならないのかを,順に考えてゆくことにする。
データベーステーブルの説明にあたって,「このサンプルではこのようなデータベーステーブルを使います」と述べるのは簡単だが,それではデータベーステーブルの設計方法を理解することは困難である。そこで本節では,設計結果であるデータベーステーブルを一気に示すのではなく,その構築過程も見てゆくことにする。そのため,若干説明が冗長になる点は,ご理解いただきたい。
3.2.1 顧客情報テーブル
まずは,顧客情報を格納する顧客情報テーブルから考えてゆくことにする。顧客情報テーブルには,「顧客名」「住所」「電話番号」といった顧客の情報を保持できれば十分である。
当然のことながら,顧客情報テーブルに格納された顧客はそれぞれが区別できなくてはならない。顧客を区別する場合,顧客名で区別する方法も考えられるが,その方法は賢くない。一般的に顧客名が変更になることは少ないが,それでも顧客名の変更が将来にわたって絶対にないとはいい切れないからである(たとえば,顧客の会社が分社したような場合が挙げられる)。
そこで,一般的にデータベーステーブルを作るときには,個々のレコードに対して唯一無二の値を格納するフィールド(一般的にレコードIDなどと呼ばれる)を用意し,それを主キーとする。たとえば,「ソフトバンク パブリッシング株式会社」という顧客はレコードIDが1番,「マイクロソフト株式会社」という顧客はレコードIDが2番というように,番号で顧客を区別するのである。そうしておけば,将来顧客名などが変わったときにも,一意に識別できる。
ここでは,顧客情報テーブルをTable 3-1のように定義する。
Table 3-1 顧客情報テーブル
フィールド名 |
型 |
サイズ |
Null |
解説 |
ID |
数値型 |
― |
不可 |
顧客番号。レコードに対して唯一無二の値を割り当てる |
NAME |
文字型 |
64 |
不可 |
顧客名 |
YOMIGANA | 文字型 | 80 | 可 | 顧客名のよみがな |
ZIP |
文字型 |
10 |
可 |
郵便番号 |
ADDRESS |
文字型 |
255 |
可 |
住所 |
TELEPHONE |
文字型 |
32 |
可 |
電話番号 |
FAX |
文字型 |
32 |
可 |
FAX番号 |
MEMO |
文字型 |
80 |
可 |
摘要 |
Chapter 3 4/22 |