mysql:14339
From: "T.Hirotsu" <"T.Hirotsu" <hirotsu@xxxxxxxxxx>>
Date: Sun, 13 Jan 2008 19:49:42 +0900
Subject: [mysql 14339] Re: 【Q】関連するテーブルは異なるデータベース上にあっても良いのでしょうか?
こんにちは、広津です。 > 同じデータベースだからやり方は MS-ACCESS と変わらないだろうと思い、 似て非なるものとお考えになった方が宜しいかと思います。 MySQL をはじめ PostgreSQL や Oracle や MS SQL などはある意味同じような ものですが、MS Access は特殊です。 データベース自体はともかく、それを管理するシステム(サーバー)の仕組みは 全く異なります。 というか、MS Access はそもそもサーバーではありませんし、、、(^^; で本題ですが、 > やろうとしていたのは(機能的に良いか悪いかは別として)、 > 多数のデータベースを作った場合、 > カレントデータベースを毎回意識するのは嫌ですから、 > ダミーの空の(空でなくても良い)カレントのデータベースを作り、 > そこから他のデータベースを操作する。 > ということです。 好みは別として、テストしてOKなように全く問題ありません。 前回、 >一方、それらのテーブルの Join は、MySQL では接続ごとにその接続から扱える >テーブル間でしか出来ません。 >つまり、最低、MySQL サーバーは同じである必要があります。 と書きました。 テストでは mysql.exe がクライアントプログラムだと思いますが、このテストの場合、 mysql.exe による接続先の MySQL サーバーが test も shouhin も kakaku も管理 していますので、それらのデータベースの各テーブルに対し普通に SQL を投げら れますし、テーブル間の Join も問題ありません。 (その接続が、扱いたいデータベースやテーブルに対しての権限を持っていれば) 従って、移行の工程を考えますと、このテストのように、すべてのデータベースを 同じ MySQL サーバーの管理下に置くのが最低条件かと。 (ただし、これだけですと、全ての SQL 文のテーブル指定句にデータベース名の 装飾を加える必要があります) 同じ MySQL サーバーの管理下に置く、ということは、基本的には同じマシンに すべてのデータを置く、ということでもあります。 一方、MS Access の場合は、サーバーというデータベース管理システムがなく、単に データベースファイルとローカルの Access プログラムのみですので、データベース ファイルがどのマシン上にあろうと、ローカルの Access プログラムからみえるところ にあれば、リンクしてテーブル間の Join をすることが出来ます。 従いまして、仮に、移行前のデータの置き場所が分散されていたとしても、それを 再現するのは止めた方が宜しいかと思います。 さきほど、元記事を読み返しましたら、データに関してはもともと 1ヶ所にあるよう ですので、私のレスが返って混乱を招いたのかもしれません。 ご容赦下さい。 あと本文やこの ML とは関係ないですがフロントエンドに関しまして、Access の レポートで行っていたことを PHP で Web ベースに移行なのでしょうか? こっちの出来上がりの方が興味あります。(笑) といいますのも、Access のレポート機能は簡単便利で、VBA + レポートオブジェクト の Access を、いまだに MySQL クライアントの 1 つとして使ってます。 これの表示と印刷のためだけに、ず〜っと Access が捨てれません、、、(^^;
14333 2008-01-11 22:36 [秋山満邦 <manpou@xxx] 【Q】関連するテーブルは異なるデータベース上にあっても良いのでしょうか? 14334 2008-01-12 13:30 ┣["日野洋一郎" <hino@x] 14335 2008-01-12 13:48 ┃┗["yusuke ito" <ito.ys] 14337 2008-01-12 18:35 ┃ ┗["日野洋一郎" <hino@x] 14336 2008-01-12 16:23 ┣["T.Hirotsu" <hirotsu] 14338 2008-01-13 10:36 ┗[秋山満邦 <manpou@xxx] -> 14339 2008-01-13 19:49 ┗["T.Hirotsu" <hirotsu] 14341 2008-01-14 00:50 ┗[秋山満邦 <manpou@xxx]