この特集のトップページへ
Chapter 3:データストア層の構築

head1.gif 3.2 データベーステーブルの設計

 先に説明したように,Fig.3-1に示したビジネスアプリケーションを構築するには,少なくとも,伝票情報,顧客情報,製品情報,請求情報という4つのデータベーステーブルが必要になる。ここでは,各テーブルにどのようなフィールド(列)を用意しなければならないのかを,順に考えてゆくことにする。

 データベーステーブルの説明にあたって,「このサンプルではこのようなデータベーステーブルを使います」と述べるのは簡単だが,それではデータベーステーブルの設計方法を理解することは困難である。そこで本節では,設計結果であるデータベーステーブルを一気に示すのではなく,その構築過程も見てゆくことにする。そのため,若干説明が冗長になる点は,ご理解いただきたい。

head2.gif 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

摘要

prevpg.gif Chapter 3 4/22 nextpg.gif