Doppelte Datensätze vermeiden, bei Nutzung von Zapier
Hier bin ich wieder.
Ich benutze Zapier um ein Google Form in eine Tabelle von meiner Datenbank übertragen zu lassen, diese Tabelle dient dann als Grundgerüst für Datensätze in anderen Tabellen.
Auch dies lasse ich normalerweise automatisiert mit Zapier ablaufen.
Wie ich schon in einem anderen thread geschrieben habe, baue ich mir gerade eine Datenbank für mein Plattenlabel auf. Das bedeutet in dem Google Form frage ich alle, für einen Vertrag relevanten Daten ab. Da wir aber natürlich auch Artist haben, die mehrere Songs bei uns veröffentlichen, versuche ich nun doppelte Dateneinträge zu verhindern.
Zur Erklärung:
Ich habe eine Tabelle Artist_Daten
hier kommt alles relevante wie Name, Adresse, etc rein
dann habe ich eine Tabelle Songs
wo alle neuen Songs angelegt werden.
Bei den Songs kommt es zu keiner Doppelung von Datensätzen, aber bei den Artist benötige ich eigentlich eine Überprüfung ob der Artists Datensatz bereits vorhanden ist.
Da ich aber programmiertechnisch echt keine Ahnung habe, stehe ich hier auf dem Schlauch und hoffe es kann mir jemand helfen.
19 Antworten
-
Hallo Tanja, ich selbst mache es in einer Kunden-DB so, dass ich sämtliche Formulareinträge (via Make) erst mal temporär in einer eigenen Ninox-Tabelle speichere. So können die Daten vor der endgültigen Übernahme inhaltlich auch noch mal auf Vollständigkeit und Plausibilität geprüft werden. Sind sie in Ordnung, werden sie per Button in die Stammdaten-Tabelle übertragen, entweder als neuer Datensatz oder als Update eines bestehenden. Vorteil neben der Möglichkeit zur vorherigen inhaltlichen Überprüfung ist, dass man in Ninox alle Möglichkeiten zur Automatisierung voll ausschöpfen kann und den Prozess immer unter Kontrolle hat.
Einiges davon, z. B. die Abfrage, ob der Artist in den Stammdaten bereits existiert oder nicht, ließe sich inklusive entsprechender Verzweigung (create/update) vermutlich auch schon mit Zapier machen. Aber das ist wahrscheinlich deutlich komplizierter und mit Sicherheit weniger flexibel. Erfahrungsgemäß kommt es immer wieder zu Tippfehlern, falsch oder unvollständig ausgefüllten Formularen, so dass man die Daten sowieso checken und oft korrigieren muss. Dann ist es m. E. sicherer und effizienter, das in einer eigenständigen Tabelle zu tun statt in den Produktivdaten.
Nur so als Idee.
PS: Ein solches Vorgehen macht natürlich nur Sinn, wenn es sich im Durchschnitt nur um wenige Datensätze täglich handelt, die per Formular übermittelt werden.
-
Hallo planox,
die Daten, die ich mit dem Google Form gewinne, landen auch in einer eigenständigen Tabelle. Die Artist-Daten sind nur ein Teil daraus.
Für meine Song Tabelle habe ich mit Zapier einen Ablauf gestaltet, der einen neuen Song_Datensatz erstellt, in dem Moment wenn ein neuer Google Form response erfolgt. (zwei aufeinanderfolgende Zapier-tasks) Das funktioniert soweit auch ohne Probleme. Diese Teildaten im Google Form sind aber wie gesagt einzigartig.
Die Artistdaten nun per Button zu übernehmen könnte durchaus auch eine Lösung sein, allerdings müsste die Abfolge dann ja auch so sein:
überprüfe ob Datensatz vorhanden - wenn nein - erstelle neu
wenn ja - überprüfe ob updates vorliegen - wenn nein kein Eintrag.
Damit bin ich aber ehrlich gesagt programmiertechnisch überfordert.
-
Alsoooooo
das Google Form beinhaltet Daten zum Song und zum Künstler / den Künstlern
Die Daten zum Song landen in der Tabelle Song (ebenfalls direkt durch Zapier) und die Daten zum Artist sollen in der Tabelle Artist landen.
Hier hat jeder Artist eine eigenständige Artist_Id die direkt bei Anlage des Datensatzes vergeben wird. Weiterhin sind hier Daten zum realen Namen, Adresse, Email, etc untergebracht.
Genau diese Daten erfrage ich auch in dem verschickten Form.
Song und Artist verknüpfe ich durch Zuordnung des Künstlers zu dem Song.
Bei deiner Lösung wäre es so, dass ich einen Button definiere, der nach Aktivierung bestimmte Teile aus dem Google Form in einen neuen Datensatz in der Tabelle Artist überführt. Wichtig ist dann nur vorher die Überprüfung ob es diesen Datensatz bereits gibt. Im Grunde nicht anders als bei deiner Kundendatei.
Wenn die Überprüfung nicht stattfindet, hab ich am Ende des Jahres 10 mal den Artist_Datensatz BAF anstatt einmal
-
Erst mal danke. Ich bin leider immer noch nicht zuhause, daher konnte ich noch nichts hochladen. Schau mir das von dir aber später an und im Zweifel jag ich das Modell von mir noch hoch.
Das ist das Problem wenn man was im Kopf hat, wie es aussehen soll, bzw wir es funktionieren soll aber nicht programmieren kann. Super lieb das du es trotzdem versuchst -
Mutig war ich schon immer :)
-
Ich hab jetzt mal einen Blick in deine Beispieldaten geworfen.
aber so komm ich nicht parat - da meine Tabellen doch etwas umfangreicher sind. Ich werde mich am Wochenende mal hinsetzen und Teile in eine Beispieldatenbank überführen. Der Part mit den Songs ist nicht notwendig, da ich dies mit Zapier bereits gelöst habe. (Jedes neue Google Form ist automatisch ein neuer Song) Aber ohne das du meine (vermutlich umständliche) Datenbank gesehen hast reden wir aneinander vorbei :)
Lieben Danke erst einmal
-
Nach einer schlaflosen Nacht nun ein kurzer Ausschnitt.
Ich hab nur die beiden Tabellen nachgebildet um die es hauptsächlich geht. Meine Artist und das Google Form.
Wie gesagt die Song Daten benötige ich nicht - es geht mir gerade nur um die Artist Angaben in dem Google Form.
Die Angaben zu Spotify und Apple habe ich zur Zeit noch in einer separaten Tabelle, habe aber vor diese in der Artist Tabelle zu integrieren, daher könnten sie auch überführt werden.
Das Problem für mich ist, dass pro Song durchaus mehrere Künstler möglich sind, also im Grunde alle Angaben im Künstlerbereich überprüft und im Zweifelsfall neu erstellt werden müssen.
Ich hoffe das hilft weiter. Danke schon mal im Voraus
-
Hallo danke für die schnelle Rückmeldung. Ja die Datenbank ist schon noch ein wenig größer, aber das hier war der Part der für meine Fragestellung wichtig war.
Es ist auf jeden Fall immer ein Künstler der vorhanden ist. Aber es gibt halt Songs wo 2 oder 3 Künstler beteiligt sind.
Ich werde den Code mal entsprechend umsetzen und im Zweifel schrei ich noch mal. Bis dahin schönes Wochenende :)
-
Super, danke funktioniert auch in der Ursprungsdatenbank. Hab jetzt den etwas umständlicheren Weg genommen und 3 Button eingebaut, so für jeden möglichen Künstler einen eigenen Button - ab ich seh ja auf den ersten Blick ob dies eine neuer für uns ist und betätige dann nur den für mich relevanten Button.
Aber ich hab nun auch hinter die Vorgehensweise geblickt und kann noch weitere Teile aus der Tabelle damit verwerten.
Somit hast du mir nicht nur geholfen, sondern warst auch noch Lehrer ;) würde sagen, alles richtig gemacht.
-
Sieht jetzt bei mir so aus - hab direkt die Socialmedia und Plattformen mit in der Abfrage
let me := this;
let myA := first(select Dashboard_Artists where Artists_Name like me.Artist_Name);
if myA = null then
if dialog("!", "Artist nicht gefunden. Jetzt anlegen?", ["Ja", "Nein"]) = "Ja" then
let newA := (create Dashboard_Artists);
newA.(Artists_Name := me.Artist_Name);
newA.(Name := me.Real_Name);
newA.(Adress := me.Adress_Country);
newA.(Email := me.Email);
alert("Artist wurde angelegt.")
else
alert("Artist wurde NICHT angelegt.")
end
else
alert("Artist bereits vorhanden.")
end;
let myA := first(select Platforms where Artist like me.Artist_Name);
if myA = null then
if dialog("!", "Platform nicht gefunden. Jetzt anlegen?", ["Ja", "Nein"]) = "Ja" then
let newA := (create Platforms);
newA.(Artist := me.Artist_Name);
newA.(Spotify := me.Spotify_Link);
newA.(Apple := me.Apple_Link);
newA.(YouTube := me.YouTube_Link);
alert("Platform wurde angelegt.")
else
alert("Platform wurde NICHT angelegt.")
end
else
alert("Platform bereits vorhanden.")
end;
let myA := first(select Socialmedia where Artist like me.Artist_Name);
if myA = null then
if dialog("!", "Platform nicht gefunden. Jetzt anlegen?", ["Ja", "Nein"]) = "Ja" then
let newA := (create Socialmedia);
newA.(Artist := me.Artist_Name);
newA.(Facebook := me.Facebook_Link);
newA.(Instagram := me.Instagram_Link);
alert("Socialmedia wurde angelegt.")
else
alert("Socialmedia wurde NICHT angelegt.")
end
else
alert("Socialmedia bereits vorhanden.")
end -
planox. pro
ich schon wieder :) ; hoffe du läufst jetzt nicht schreiend davon..
Besteht auch die Möglichkeit nach dem Prüfen ob Datensätze vorhanden sind, auch eine Prüfung durchzuführen, ob bestimmte Dinge verändert werden müssen.
Was häufiger schon mal vorkommt ist zum Beispiel eine Adressänderung.
Das Feld ist dann ja nicht "Null" es stehen ja Daten drin.
Schon mal Danke im Voraus
-
Na dann
aber yep hast recht - im Formular sollte immer der aktuellste Datensatz sein. Danke teste ich Morgen direkt mal aus.
Frohen Rest Sonntag noch
Content aside
- vor 1 JahrZuletzt aktiv
- 19Antworten
- 90Ansichten
-
2
Folge bereits