0

Hilfe zu Beziehungen zwischen Tabellen

Aufgabenstellung:

Ich habe eine Artikel-Datenbank angelegt mit den üblichen, artikelbeschreibenden Feldern. So zb "Artikelnummer", "Beschreibung", "Länge", "Breite" .... usw. Es sind Bilder hinterlegt, VK-Preise, EK Preise, jeweils gestaffelt (1, 100, 250...usw), Herkunftsland, Zolltarifnummer, verschiedene Veredelungsmöglichkeiten (Laserdruck, Aufkleber usw.) - also bereits eine ganze Menge Daten.

Jetzt stellt sich folgendes Problem:

Verschiedene Online-shops importieren diese Daten anhand von CSV-Dateien. In diesen CSV-Files haben die Spalten aber unterschiedliche Namen. Insgesamt ist die Struktur dieser CSV Tabellen immer etwas anders. Bei einem Shop ist es "Art.Nr", bei dem anderen "ArticleNumber DE", bei einem dritten Shop muss die Spalte "LF_Artikelnummer" heißen.

Ich habe nun neue Tabellen anhand der vorgegebenen CSV importiert, um Fehlerfrei zumindest die korrekten Spaltenbezeichnungen zu haben. Diese Tabellen möchte ich nun mit meiner Hauptdatenbank verknüpfen, möglichst über die eindeutige Artikelnummer.

Ich könnte natürlich meine Hauptdatenbank exportieren, und via Import die Datenfelder der anderen Tabelle füllen. Das muss doch aber auch dynamisch gehen, OHNE dass ich manuell Formelfelder erstellen muss (ArtNr = Haupttabelle.Artikelnummer) 

Oder?

Danke vorab für Denkanstöße :)

Gruß, Tobias

7 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Tobias,

    wenn du unterschiedliche Varianten deiner Artikeltabelle als CSV-datei haben möchtest, kannst mehrere Ansichten der Tabelle erstellen und jede Ansicht als CSV freigeben. So bekommst du dynamische CSV-Dateien und kannst diese immer mit  der Freigabe-URL abrufen. Funktioniert aber nur in cloud-Version, weil Ninox auch die Freigabeadressen bereitstellt.

    Ohne Freigaben kannst du die Ansichten mit export-funktion auch manuell exportieren. Dabei werden die Spaltennamen der auktuellen Ansicht gespeichert.

     

    Leo

    • T_Bartzsch
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hi Leo,

    ja, das habe ich schon sehr erfreut bemerkt, dass sich verschiedene Ansichten  konfigurieren und auch als CSV ausgeben lassen. Genial.

    Ich muss diese unterschiedlichen Vorgaben allerdings einmal für jeden Shopanbieter einlesen, und habe bisher deren Beispiel CSV als NEUE TABELLE importiert, damit ich alle benötigten Datenfelder mit korrekter Bezeichnung in einer Tabelle habe. Diese Tabellen verknüpfe ich nun mit der Hauptdatenbank, damit ich in der Ansicht über "Spalten einblenden..." auf die Felder der importierten Tabelle Zugriff habe.

    Wie bekomme ich jedoch hin, dass er mir das Feld "Artikelnummer" als Schlüssel setzt und mir aus allen importierten Tabellen nur die Datensätze aus dem korrespondierenden Feld "Artikelnummer" zeigt? Also ein automatisches Verlinken der verknüpften Tabellen mit dem Feld Artikelnummer.

    Ist das überhupt machbar, oder muss die Verlinkung auf die anderen Tabellen pro Datensatz manuell erfolgen?

    Danke Vorab, Beste Grüße

    Tobias

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Tobias,

    verstehe ich leider nicht so ganz. Du hast eine Haupttabelle mit den Artikel und möchtest für unterschiedliche Shops diese Tabelle anders dargestellt anbieten. Die Spalten der Tabellen heißen anders, aber die Inhalte bleiben unverändert. Wenn es so ist, dann würde ich keine Tabellen von Shops in Ninox speichern, sondern lediglich mehrere Ansichten von der Haupttabelle erstellen und dort die Spalten umbenennen. Habe kleine Beispieldatenbank gebastelt. 

    https://www.dropbox.com/s/ojbds6j8gjzu8zy/Tobias.ninox?dl=0

     

    Leo

    • T_Bartzsch
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Leo, 

    Danke für Deine Mühe! Und für Dein Beispiel! 

    Aber das Problem ist anders gelagert.

    Ich habe natürlich die Hauptdatenbank mit allen relevanten Angaben und Feldern. Soweit, so gut.

    Für Shop A brauche ich im Export aber nicht nur einfach andere Spaltennamen und Spaltensortierungen - ich brauche auch zusätzliche Felder. Diese sind teilweise immer gleich (z.B. eine Anbieter ID, ein Timestamp, ein Passswort für den Shop usw.) teilweise auch leer, wenn diese Daten für Produkte nicht relevant sind.

    Um meine Hauptdatenbank nicht unnötig "aufzublähen" und um die Spaltennamen fehlerfrei einzulesen, habe ich die VorgabenCSV der verschiedenen Shops jeweils in neue Tabellen Importiert. Diese importierten Tabellen verknüpfe ich unter einem Reiter SHOPS einfach in meiner Haupttabelle.

    Jetzt habe ich in meiner Haupttabelle die Möglichkeit, für jeden Shop eine Ansicht zu erstellen und habe bei der Spaltenauswahl schön säuberlich die verknüpften Tabellen gelistet und kann meine Ansicht zusammenstellen.

    Was nicht funktioniert ist, dass wenn ich im Artkel 0001 bin, er mir in der verknüpften Tabelle auch die Daten aus Artikel 0001 anzeigt. Ich kann natürlich per Klick auf das PLUS den Datensatz mit der Tabelle verknüpfen, aber das muss doch auch automatisiert gehen, oder?

    Beste Grüße

    Tobias 

    • T_Bartzsch
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Bildschirmfoto 2018-08-06 um 15.38.34

     

    Bildschirmfoto 2018-08-06 um 15.39.01

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Tobias,

    ich würde es ganz anders machen, es ist aber privatsache, jeder gestaltet die Datenbank nach eigenen Vorstellungen.

    Wenn du schon die Datensätze in allen Shops eingerichtet hast, dann würde ich auf Massendatenänderung gehen und dann auf gewünschten Shop->berechneten Wert zuweisen:

    ---

    let myART:=Artikelnummer;

    first (select 'deine Shop Tabelle'['Shop-Artikelnummer'=myART]

    ---

    so musst du dann für jeden Shop machen

    Leo

    • T_Bartzsch
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hi Leo,

    das ist mein erster Kontakt mit Ninox. Ich bin schon froh, dass das hier so super funktioniert - und das es auch so patente Forumsteilnehmer gibt! Hut ab und Danke nochmal dafür!

    Bisher wurden die CSV der einzelnen Shops MANUELL per Excel-Tabelle befüllt! Das war wohl eine mehrwöchige Aktion. Das gilt es nun komfortabler zu gestalten.

    Mir ging es beim importieren der Tabellen rein um die Struktur wie die Datenfelder nachher angelegt sein müssen. Die Datensätze sind eigentlich alle leer und speisen sich aus der Hauptdatenbank. Da es aber so viele sind, kann ich nicht jedes Feld über eine Formel befüllen.

    Ich versuch mal deinen Vorschlag... 

    Beste Grüße

    Tobias