[前][次][番号順一覧][スレッド一覧]

mysql:10877

From: nomoto <nomoto <shin-1@xxxxxxxxxx>>
Date: Fri, 04 Feb 2005 12:48:44 +0900
Subject: [mysql 10877] Re: リレーショナルDBの考え方?

  こんにちは。野元です。

>とても初歩の質問でお恥ずかしいのですが、どうかご指導
>よろしくお願いいたします。

Accessと決別した事は正しい判断です。
Accessで慣れてしまったからといってWEBシステムにAccessDB
をそのまま流用して破綻したケースをいくつも見てきました。

リレーショナルデータベースに対する理解は正しいと思います。
http://www.atmarkit.co.jp/icd/root/08/5787108.html

クエリとは通常、データベースエンジンに発行するSQL文そのもの
を指します。
AccessはGUIでデータ操作できる事が前提なので、そのような複雑
なSQL文をクエリという目に見える形で定義して、SQL文の組み立て
をあらかじめ登録していると思って下さい。
Accessでは複雑なシステムになると定義されたクエリが山のよう
に増えてしまい、すでに使われなくなったクエリが沢山残って整理
できなくなっているような例もよく見かけます。

PHPであれば特定の社員コードをもつ社員の部署名と氏名を欲しい
場合は、プログラムからその都度、busyoテーブルとsyainテーブル
をjoinして以下のようなクエリを発行します。
select busyo.name, syain.name from busyo join syain 
  using (busyo_cd) where syain.cd=123005
これは両方のテーブルが同じbusyo_cdという項目で繋がって
いる事を知らせています。項目名が違う場合はonで表記します。

FOREIGN KEY(外部キー)として、テーブル定義時にある項目が
他のテーブルの項目と関連している事を指定する事もできま
すが、
http://dev.mysql.com/doc/mysql/ja/ansi-diff-foreign-keys.html
それが必ずしもプログラムを簡単にする場合ばかりでは
ありませんので、まずはさまざまなSQL文(クリエ)を組み立て
られるようにSQLテクニックの経験をつむことが大事だと思います。

そういうわたしもFOREIGN KEYは滅多に使いませんね。

[前][次][番号順一覧][スレッド一覧]

     10876 2005-02-04 12:15 ["saori" <hibiki@xxxx] リレーショナルDBの考え方?            
->   10877 2005-02-04 12:48 ┣[nomoto <shin-1@xxxxx]                                       
     10878 2005-02-04 13:06 ┃┗[<hibiki@xxxxxxxxxx> ]                                     
     10886 2005-02-04 16:12 ┃ ┗[深海水草 <VYG01106@x]                                   
     10893 2005-02-05 22:14 ┃  ┗[<hibiki@xxxxxxxxxx> ]                                 
     10895 2005-02-06 18:32 ┃   ┗[深海水草 <VYG01106@x]                               
     10896 2005-02-07 05:58 ┃    ┗["kanariya" <hibiki@x]                             
     10879 2005-02-04 13:11 ┗[al-kamil <al-kamil@x]                                       
     10880 2005-02-04 13:36  ┗[al-kamil <al-kamil@x]                                     
     10881 2005-02-04 14:09   ┣[<yasuyuki@xxxxxxxxxx] ViEW and MySQL5 (Re:  リレーショナルDBの考え方?)
     10882 2005-02-04 14:14   ┗[<hibiki@xxxxxxxxxx> ]