14 返信 最新の回答 日時: Nov 9, 2015 5:29 PM ユーザー:nkk47

    テーブル間のフィールド移動

    nkk47

      お世話になります。

       

      無計画にひとつのテーブルに多数のフィールドを作ってしまい、あとになってテーブルを増やして、その

      テーブルに既存のフィールドを移動するような事は出来るのでしょうか。

      アドバンスなら出来るような事を聞いた記憶があるのですが・・・

       

      ネットで検索しましたら「スクリプトを用いて・・・」というのが幾つか見つかりましたが、どうも自分のやり

      たい事とは違っているようでした。

       

      ご教示の程、宜しくお願い致します。

       

      作業環境

      Windos Vista HP SP2

      FileMaker PRO 11 0v3

        • 1. Re: テーブル間のフィールド移動
          user14047

          FileMaker Pro Advanced であれば、フィールド定義のコピーとペーストが出来ます。

          データの移行はスクリプトでもいいですし、該当フィールドをエクスポートして、新しく作ったテーブルのフィールドにインポートするのが一番簡単かと思います。

          • 2. Re: テーブル間のフィールド移動
            fukky

            FileMaker Pro Advanced でできるのはテーブル構造としてのフィールドのコピーです。

            中に入っているデータをまるっとコピーはできません。

             

            無計画に増やしたと書かれていますが、

            データベースの構造上同じテーブルにあるべきフィールドか否かが重要で

            増えたからテーブルを分ければよいというものではありません。

             

            なぜ分割するのかしっかりと考えたほうがいいですよ。

             

             

            どうしても分けたい場合はどのレコードのデータなのかという情報もなければいけません。

            レコードにユニークなキーフィールドが必要でしょう。

            ”同じ順番にあるデータを同じものとする" などというワケにはいきませんので......

             

            Advanced がなくても構造としてのフィールドのコピーはそれほど難しくないので

            分割したテーブルに元のテーブルから分割したフィールドの値をインポートすれば良いでしょう。

            ※上述したユニークなキーフィールドは双方に必要です。

             

            キーフィールド同士をリレーションすれば分割は完了です。

            あとは元のテーブルから分割したフィールドを消します。

             

            繰り返しになりますが「無計画にフィールドが増えたから」以外の理由があるか考えてみては如何でしょう。

            • 3. Re: テーブル間のフィールド移動
              sago350@未来Switch

              今回の既にあるテーブルへの取り込みには使えませんが、

              テーブルの内容をまるっとコピーしたい場合は、FileMaker形式インポートして、新規テーブルを作成するオプションを選べば、FileMaker Proでもテーブルをコピーする事ができます(データもいっしょに)。

              • 4. Re: テーブル間のフィールド移動
                nkk47

                user14047 さん

                fukky さん

                sago350@未来Switch さん

                 

                まとレスで失礼致します。

                 

                sago350@未来Switch さんの方法を試させて頂きました。

                どうにか出来そうです。

                 

                さて、fukky さんのご質問ですが、Filemaker を触りはじめた頃 (今も技量的にはその頃と大して変化はありませんが・・・) に作ったファイルがあり、久し振りに開いてみたのですが、当時は今にも増してなにも考えず、ひとつのテーブルに500程のフィールドを作っていたのですが、いざ改修しようと触りはじめましたところ 「データベースの管理」 ウィンドウで目的のフィールドを探すだけでも難儀してしまう有り様ですので、少し整理しようかと思ってみた次第です。

                 

                そこで、ここからは皆さんにお聞きしたいのですが、

                 

                ・1つのファイルに幾つくらいのテーブル数が妥当なのか

                ・1つのテーブルに幾つくらいのフィールドが適当なのか?

                ・テーブル数が多いのと、フィールド数が多いのとではどちらが扱いやすいのか?

                 

                もちろん、作成するデータベースによって違ってくるでしょうし、作成者の個性 (癖) もあると思いますが、今回のように1つのテーブルに500程度のフィールドがあると、個人的には非常に作業し辛く感じます。

                かといってテーブルを増やすと、こんどはリレーションがグチャグチャになりそうですし・・・

                 

                他の人のデータベースファイルを見た事もありませんので、自分が作っているものが本当に扱い易いのかの判断も出来ません。(まだその域に達していない現状ではありますが)

                 

                参考までにご教示頂ければ幸いです。

                • 5. Re: テーブル間のフィールド移動
                  sago350@未来Switch

                  ケースバイケース。

                  それは数でどうこうという問題ではないかと。

                  教科書的な話で、データベースの正規化を少し学ばれるといいかなと思います。

                  (要は fukky さんの話なんですが)

                   

                  第4回 データベースの正規化|OSS-DB入門|OSS-DB道場|受験対策|DBスペシャリストを認定する資格 OSS-DB技術者認定試験

                  • 6. Re: テーブル間のフィールド移動
                    nkk47

                    ご照会頂きましたウェブサイトを早速見てみました。

                    敷居は高そうですが、熟読させていただきます。

                     

                    ありがとうございます。

                    • 7. Re: テーブル間のフィールド移動
                      user14047

                      折角 FileMaker Community にアカウントがあるのですから、FileMaker 社が提供しているドキュメントも参考にしましょうよ。

                      テクニカルブリーフ ここの中の デザイン:パフォーマンス がわかりやすいかと思います。

                      頭の方はレイアウトデザインの話ですが、残りは、「スキーマのパフォーマンス」、「ソリューション論理のパフォーマンス 」となっていて、全体でも30ページなので通して一読をお勧めします。

                      • 8. Re: テーブル間のフィールド移動
                        fukky

                        正規化については sago350@未来Switch さんが書いているので

                         

                        目的のフィールドを発見するためには

                        Windows であればデータベースの管理画面でいずれかのフィールドを選択した状態で

                        キーボード入力すると IME の入力欄が画面外に表示されるので

                        そのまま確定すると入力した内容と一致する名称のフィールドまで飛びます。

                         

                        20151109_fieldsearch.png

                         

                        この方法はフィールド名が複雑で変換が難しいと思い通りに使えないので

                        サードパーティ製の FileMaker の開発アシスタントアプリを利用する手もあります。

                         

                        こちらのツールはフィールドだけで無くスクリプト名やスクリプト内で使われている文字列も検索でき便利です。

                         

                        2empowerFM Developer Assistant

                        • 9. Re: テーブル間のフィールド移動
                          nkk47

                          ご照会いただきましたデザイン:パフォーマンスをダウンロード致しました。

                          これからプリントアウトして読ませていただきます。

                           

                          ありがとうございます。

                          • 10. Re: テーブル間のフィールド移動
                            nkk47

                            フィールドの探し方はエクスプローラでの方法と同じだったんですね。知りませんでした。

                            ご照会いただきましたツールは便利そうなんですが、日本語対応押してないようですね。まだよく見ていませんが。

                            ただ、直感的に使えそうな気もしますので、早速ダウンロードして使ってみます。

                             

                            ありがとうございます。

                            • 11. Re: テーブル間のフィールド移動
                              fukky

                              インタフェースが日本語化されていないという意味なら日本語対応していませんが、機能は日本語対応していますよ。

                              • 12. Re: テーブル間のフィールド移動
                                nkk47

                                ダウンロード致しました。→ 2empowerFM Developer Assistant 2.92

                                ただ、どうやってプラグイン登録するのかが分からず試行錯誤中です。

                                READ FIRST.TXT も Manual も全て外国語なもんで・・・(T.T)

                                • 13. Re: テーブル間のフィールド移動
                                  fukky

                                  マニュアルの 3-4 ページあたりの「Installation in FileMaker Pro」にわかりやすく書かれていますよ。

                                  Windows のインストール方法は4ページです。

                                   

                                  Install フォルダの中身を以下にぶち込めと......

                                  \Program Files (x86)\ <FileMaker version> \Extensions\

                                   

                                  フォルダ名は若干変わるのでそこは読み替えましょう。

                                  • 14. Re: テーブル間のフィールド移動
                                    nkk47

                                    ご丁寧にありがとうございます。

                                     

                                    辞書と翻訳ソフトを駆使しながら解読中でした。

                                    どうにかなりそうです。