5 返信 最新の回答 日時: Dec 17, 2010 5:14 AM ユーザー:Shin

    複数の値一覧

    とえとえ

      タイトル

      複数の値一覧

      フォーラムに投稿

      まったくの初心者です。

      例えば

      1.爬虫類、ほ乳類、鳥類

      2.爬虫類を選んでいれば、ヘビ、トカゲ、ワニ等。ほ乳類を選んでいれば、犬、猫、うさぎ等。

      3.犬を選んでいれば、柴犬、ブルドック、ちわわ等

      と組むとします。1.2.3のフィールドはすべて値一覧で処理したいと考えてます。

      1と2だけ、の場合は出来るのですが、3つがつながった値一覧の組み方がわかりません。

      1.2.3はそれぞれフィールドに分けるのが良いのでしょうか?

      それとも、1.2と3、または1と2.3とするのが良いのでしょうか?

      リレーションの理解度も相当怪しい初心者ですみません。

      どなたか教えて頂けませんでしょうか?

        • 1. Re: 複数の値一覧
          J

          とえとえさん

          こんにちは

          動的値一覧ですね。

          1と2だけの場合は出来るということですが、同じように2と3で関連付ければ大丈夫だと思いますよ。

          値一覧用に別のテーブルを作ってマスタにする方法もあると思いますし、データを参照して過去に入力された事があるものを選択肢にしてもよいと思います。2や3の選択肢があまり変化しないならマスタでいいかなとおもいますし、選択肢が追加されることが頻繁ならデータを使用したほうが管理が楽だと思います。

          もう少し詳しく状況をかいたほうがレスが着きやすいと思います。

          • 2. Re: 複数の値一覧
            Shin

            3の値一覧には、1,2 で引くのが良いと思いますが、2 のフィールドで同じ言葉が無ければ、実質 2 だけでも問題の無い事が多いです。

            マスタ—テーブルを別にもたれるのが、後々の管理まで含めて、簡単だと思います。マスターテーブルの作り方は2通り考えられます。
            一つは、最上位からの全ての経路を持たせるテーブルです。次のの様な構造になります。
            爬虫類  ヘビ
            爬虫類  トカゲ
            爬虫類  ワニ
            ほ乳類  犬    柴犬
            ほ乳類  犬    ブルドック
            ほ乳類  犬    ちわわ
            ほ乳類  猫
            ほ乳類  うさぎ
            鳥類   ハト
            これらを複数のフィールドに格納します。(この例でしたら3フィールドが必要)階層が増えるとフィールドが増えていき、入力が面倒になっていきますが、項目毎からでも最上層からの見通しは良いでしょう。
            元のテーブルからは、各段階毎のフィールド同士をリレーションし、それを通した下のフィールドを使った値一覧を動的に得る事で、目的に適うでしょう。

            二つは、上下関係だけを持たせるテーブルです。次のの様な構造になります。
            動物   爬虫類
            動物   ほ乳類
            動物   鳥類

            爬虫類  ヘビ
            爬虫類  トカゲ
            爬虫類  ワニ
            ほ乳類  犬
            犬    柴犬
            犬    ブルドック
            犬    ちわわ
            ほ乳類  猫
            ほ乳類  うさぎ
            鳥類   ハト
            これらを2フィールドに格納します。項目数が増えても、入力は少なくて済むのですが、全体の管理は、別に管理用の仕組みを作っておかないと面倒になるかもしれません。
            元のテーブルからは、各フィールドを上の親フィールドとリレーションし、それを通した子フィールドを使った値一覧を動的に得る事で、目的に適うでしょう。
            この方法では、別階層の中で、同じ言葉が出てこない事が条件です。また、べつのルートを通した検索が出来るのも特徴です。

            例えば、動物、ペット、室内、ちわわ という別の階層も作れます。

            それらによる値一覧を組み込んだサンプルをご覧下さい。(当然ながら、動作は全く同じです)

            https://files.me.com/hiramatsu/hkxin0

            • 3. Re: 複数の値一覧
              とえとえ

              Jさん

              お返事ありがとうございます。

              かなりテンパって書いておりまして、詳しく書いたつもりが

              今自分で読み返しても解り難いモノでした。

              私自身が初心者のうえ、作ったモノの利用者は更に知識が無い状態、に

              なりそうです。もっと勉強してテストを繰り返してみます。

              • 4. Re: 複数の値一覧
                とえとえ

                Shinさん

                お返事ありがとうございます。

                また、sampleまで作って頂き、大変感謝しております。

                sampleを拝見し、参考になりまして(というか学習している最中ですが)、

                図々しいながら質問があります。

                2つ目の方法の中で

                >同じ言葉が出てこない

                との条件ですが、フィールドが増えて、犬or猫の下に「ペットの名前」が追加された場合、

                同じ名前が出て来る可能性があります。

                そいう想定をするとしたら、マスター2のテーブルは分ける、という事になるのでしょうか?

                ちょっと自分でもテストをしてみます。

                • 5. Re: 複数の値一覧
                  Shin

                  最下層に同名が来た場合は、余り影響がありません。上の例ですと、ペットの名前で検索したときの処理を考えておく必要はあるでしょう。

                  問題となるのは、例えば、ほ乳類に熊がいて、鳥類に熊がいる、(実際にはほとんど考えなくていい物でしょうが)場合です。この場合、その熊の下に品種がぶら下がると、ほ乳類、鳥類のどちらの分類に入るかが区別できなくなります。