外部キーについて


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol331

これならわかるマイクロソフトアクセス活用法
            -->外部キーについて
              
発行者:高内 章治 2019年3月 6日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】外部キーについて

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「外部キーについて」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: 外部キーについて

─────────────────────────────────

お客様から質問がありました。

「外部キーでNULLを許容することは出来るのでしょうか? 」

という質問です。

外部キーとは、関連したテーブルを結ぶために設定する列のことで、参照されている側(子テーブル)の列です。
主キーのあるテーブル(親テーブル)の列と結合しています。

データの整合性をデータベースに保証させるために使用します。

例えば、
「製品テーブル」と「売り上げテーブル」があったとします。

「製品テーブル」の「製品コード」と「売り上げテーブル」の「製品コード」が、リレーションシップで結合されています。

「製品テーブル」の「製品コード」は「主キー」で親テーブルです。
「売り上げテーブル」の「製品コード」が「外部キー」で、子テーブルになります。

「製品テーブル」の「製品コード」は「主キー」ですから、必ず入力する必要があります。
nullの入力は出来ません。

「売り上げテーブル」の「製品コード」は、「製品テーブル」の「製品コード」以外のコードは入力することが出来ません。
リレーションシップされていますので、間違って入力することを防ぐことが出来ます。

でも、実際にAccessで入力してみると、null(データを入れない)で、データが保存されてしまいました。

結果としては、nullの入力は出来ました。

でも、「売り上げテーブル」のデータとしては、「製品コード」がありませんので、意味がなくなってしまいます。
「売り上げテーブル」のデータが消えた状態になります。

これは、困りますね。


「売り上げテーブル」でnullの必要なケースがある場合があります。

例えば、
製品ではなくて、作業などで売り上げが上がったなどがあった場合です。

そういう場合は、「製品コード」に、「No_data」とか「Sagyo」(作業)とか「9999」などの特別な「製品コード」を作ってデータを入力した方がよいと思います。

そうすれば、「売り上げテーブル」のデータが取れるようになります。


もし、「製品テーブル」以外の「製品コード」が頻繁に発生する場合は、リレーションシップをしなくて、「売り上げテーブル」のフォームで、「製品コード」を入力するときに、参考として「製品テーブル」を、使う方法もあると思います。

ケースバイケースです。


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

少しずつ暖かくなっています。

でも、花粉症がひどくなっています。

晴れた日は、かなり花粉が多いようです。

目のかゆみや鼻づまり、くしゃみがすごいです。

最近、ビフィズス菌が花粉症によいというのを聞きました。

スーパーにいくと、ビフィズス菌の入ったヨーグルトがたくさんあります。
驚きます。

食べ始めましたが、目のかゆみが軽くなったようです。

良いかもしれません。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
13:072003

アクセス全体

VBA

SQL Server