システム開発 売上伝票の鑑部と明細部を関連付ける方法。

リレーショナルデータベースを用いた システム開発 では、複数のテーブル同士を関連付けることで、目的のデータを得ます。

前回のように、売上伝票をただ分けただけでは、鑑部と明細部のつながりが無くなってしまいます。すると、どの明細部が、どの鑑部のものなのかがわかりません。

【1】そこで、明細部に「伝票No」の項目(列)を加えます。

system-69.gif

*計算部分は省略しました。

これだけで関連付けは完了です。簡単ですよね。

伝票No が両方にあることで、どの鑑部の明細部なのか、判断できるようになりました。つまり同じテーブルに、異なる鑑部の明細部を保存しておいても、区別することができます。


あと、もう一つ付け加える項目があります。

【2】明細部の各行を、一意に識別するため、主キーとして「明細No」を加えます。

system-70.gif

*一意とは、同じデータが他に無く、重複しないことです。
*主キー(primary key)とは、レコードを「一意」に識別するためのフィールドです。

主キーである 明細No が「1」のレコードは、必ず1件しかありません。

したがって、たとえ伝票No、品名、数量、単価が同じでも、明細Noが異なれば、違うレコードだと識別できるわけです。

また、明細部での 伝票No は主キーではなく、外部キーなので、重複してもOKです。伝票Noが重複しているものが、同じ鑑部に属するレコードだとわかります。


【3】ここまでの作業をまとめると、以下のようになります。

・鑑部
system-67.gif

・明細部
system-66.gif


【ワンポイント】
鑑部の主キーには、「No」の項目を「伝票No」として、そのまま使うことができます。

system-68.gif

主キーには、数値型のフィールドを使うのが一般的です。

もし、伝票番号に意味を持たせたい場合は、「H20-12-22-0001」のような文字列で入力できるフィールドを、新たに用意したほうが良いでしょう。

スポンサードリンク

スポンサードリンク






システム開発実践講座 TOPへ