3 Antworten Neueste Antwort am Aug 4, 2016 8:36 AM von file.maker@mybyte.ch

    Neue Tabelle aus mehreren vorhandenen Tabellen generieren

    kay-uwehartleb

      Liebe Gemeinde,

       

      folgendes Problem, dass ich einmal, frei erfunden, wie folgt illustrieren möchte:

       

      Es gibt fünf Tabellen (Jacken, Hosen, Socken, Mützen, Schuhe) mit jeweils unterschiedlich vielen spezifischen Feldern, die diese Sachen beschreiben, z.B. "Beinlänge" bei Hosen, "Sohlenart" bei Schuhen. Neben den spezifischen Feldern sind auch allen Tabellen gemeinsame Felder darunter, sagen wir, "Kategorie" (Jacken, Hosen, Socken, Mützen, Schuhe), "Farbe" (grün, blau, schwarz), "Größe" (S, M, L, XL), "Marke" (A, B, C).

       

      Ich möchte nun, während ich einen neuen Datensatz in der Tabelle "Jacken" und einen weiteren in der Tabelle "Hosen" und noch einen in der Tabelle "Schuhe" aufnehme, eine sechste Tabelle haben, die diese Datensätze in den anderen Tabellen "sieht". Diese sechste Tabelle, nennen wir sie "Marken", soll die übrigen fünf Tabellen auslesen und alle Datensätze dieser Tabellen bestehend aus den gemeinsamen Feldern (Kategorie, Farbe, Größe, Marke) anzeigen.

       

      Ich könnte dann in dieser Tabelle z.B. analysieren, was alles von Marke "A" oder Marke "B" oder Größe "M" vorhanden ist und muss nicht fünf Tabellen befragen.

       

      Lässt sich das ohne Script bewerkstelligen?

       

      Herzliche Grüße, Kay

        • 1. Re: Neue Tabelle aus mehreren vorhandenen Tabellen generieren
          Markus Schneider

          nein, so geschildert funktioniert es nicht ohne Script

           

          Ansatz (mit Script): Mit Hilfe von virtuellen Listen. daten per SQL gewinnen, dann in eine Hilfstabelle schreiben (Tabelle 6, Marken). Diese Tabelle dient dann als 'view' - also nicht zum Aendern von Eingaben, etc.

          • 2. Re: Neue Tabelle aus mehreren vorhandenen Tabellen generieren
            ThomasReuter

            Ohne Script sehe ich da im Moment auch keinen Ansatz.

             

            Ich würde mir einfach in den entsprechenden Tabellen ein Feld automatisch berechnen lassen, das die wesentlichen Eigenschaften der Artikel beschreibt. Dieses und alle relevanten Suchkriterien würde ich mir dann in Tabelle 6 importieren. Zudem hat die Tabelle 6 noch ein globales Feld "MeinFilter", das als Suchkriterium dient.

             

            Anschließend machst Du mit eine Kreuzrelation eine Beziehung, die alle Datensätze in Tabelle 6 referenziert: das lässt Du in einem Ausschnitt anzeigen.

             

            Danach schaust Du Dir den Filter für den Ausschnitt mal genauer an: zeige nur Datensätze an, in denen der Suchbegriff "MeinFilter" vorkommt. Die Funktion "Musteranzahl" ist da ganz praktisch.

             

            Aber bei viel Holz wird der Filter ziemlich langsam ...

             

            Herzliche Grüße!

            Thomas

            • 3. Re: Neue Tabelle aus mehreren vorhandenen Tabellen generieren
              file.maker@mybyte.ch

              Hallo

              Die Frage ist auch, weshalb Du so viele Tabellen für praktisch die gleichen Infos benötigst. Du könntest ja auch auch nur mit zwei Tabellen arbeiten:

              • Produkte (Kategorie, Farbe, Marke etc.)
              • Attribute (Attribut 1, Attribut 2)

              Die Attributtypen kannst Du entweder in einer Vokabular-Begriffe-Tabelle festlegen oder in einer Werteliste definieren. Somit hast Du dann eine echt skalierbare Datenbank-Lösung, die nicht viel Kopfzerbrechen macht. Via Script-Trigger könntest Du nach dem Einstellen der Kategorie gleich die erforderlichen Attribute für die Produktkategorie anlegen, die dann in einem Ausschnitt (Portal) zum Ausfüllen angezeigt werden.

              Anders als echte SQL-Datenbank-Systeme beherrscht FileMaker keine echten Views, in denen man die Daten auch bearbeiten könnte (z.B. in MySQL). Aus diesem Grunde würde ich meinen Lösungsansatz bevorzugen, denn der bietet Dir alle Möglichkeiten.

              Gruss aus Zürich

              Hans

              1 von 1 Personen fanden dies hilfreich