Swift - Kundendaten in Firebase in Verbindung setzten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Swift - Kundendaten in Firebase in Verbindung setzten

    Hallo zusammen,
    Ich bin neu hier und erhoffe mir Hilfe von erfahrenen Swift Entwicklern.
    Falls ich hier im falschen Bereich bin, bitte verschieben.

    Meine App Idee:
    Ich bin gerade dabei ein Kunden Management System für meine Firma zu bauen. In dieser App sollen Daten wie Adresse des Kunden, Ansprechpartner mit diversen Infos und Kundenspezifische Daten wie Sortimente im Markt etc gespeichert werden. Die Daten würde ich gerne in einer Firebase Realtime Database speichern.

    Zu meiner Frage:
    wie lege ich nun einen Kunden in Firebase an und gebe diesen Kunden im Nachhinein die Informationen. Also wie ordne ich die Infos dem Kunden zu, sodass eine Verbindung entsteht.

    Da ich noch relativ neu im Swift Business bin, seid mir bitte nicht böse über eine vielleicht so doofe Frage :D

    danke schonmal.
  • Hallo Rene,

    ich hoffe deine Frage richtig zu verstehen. Grundsätzlich ist es wie bei jeder Datenbank-Konzeption das gleiche: es gibt nicht nur eine Lösung und die sinnvollste Lösung hängt vom Kontext ab. Firebase ist eine NoSQL document-based Datenbank. Das heißt, du hast keine Tables (wie z.B. "Kunde" und "Sortiment"), du du miteinander per Foreign Key / N:M table verknüpfen kannst. Stattdessen hast du bei Firebase Collections, welche Documents enthalten, wobei Documents auch wieder Collections enthalten können. Documents werden identifiziert durch eine unique ID (ähnlich eines Primary Keys). Das mal so als Basis, die dir sicherlich bereits bekannt ist.

    Du könntest deine Datenbank z.B. wie folgt konzipieren:

    Idee 1: Eine Collection "Kunde", die ein Document für jeden Kunden enthält. In jedem Kunden-Document sind die Basis-Daten gespeichert (Adresse etc.). Eine zweite Collection neben "Kunde", "Sortiment", welche für jedes mögliche Sortiment-Objekt ein document enthält. Wenn du einem Kunde Sortiment zuweisen willst, kannst du in dessem document auf ein oder mehrere Sortiment-Documents verweisen, in dem du deren documentIDs speicherst.

    Idee 2: Ebenfalls eine Collection "Kunde", die für jeden Kunden ein document enthält. Nun enthält aber jedes Kunden-Dokument eine weitere Collection "Sortiment", in dem alle Sortiments-Objekte enthalten sind (je ein document), die genau diesem Kunden zugeordnet sind.

    Idee 1 mimt die übliche Struktur von SQL. Vorteil ist, dass keine Redundanzen entstehen (jedes Sortiment existiert nur einmal), das könnte aber auch ein Nachteil sein, da es ungewünscht ist. Bei Idee 2 ist jedes Sortiment neu abgespeichert, was zunächst nach Redundanz schreit, aber oft sogar gewollt ist, da man deutlich flexibler ist (kann bei jedem Kunden beliebig abgeändert werden). Was genau nun besser ist, ist wie anfangs bereits gesagt vom Kontext abhängig (wie flexibel will ich sein, ist das Sortiment immer gleich oder je Kunde unterschiedlich usw.?). Ich persönlich würde vermutlich zu Idee 2 tendieren, wenn ich es mit Firebase umsetzen wollen würde, da das die "Firebasigere Lösung" wäre. Man könnte es auch kombinieren mit einer dritten "Template-Collection", in der die Default-Sortiment documents enthalten sind.

    VG
  • ReneBuenting schrieb:



    ... Die Daten würde ich gerne in einer Firebase Realtime Database speichern.

    Zu meiner Frage:
    wie lege ich nun einen Kunden in Firebase an und gebe diesen Kunden im Nachhinein die Informationen. Also wie ordne ich die Infos dem Kunden zu, sodass eine Verbindung entsteht.

    Da ich noch relativ neu im Swift Business bin, seid mir bitte nicht böse über eine vielleicht so doofe Frage :D
    Ich muss mal doof zurück fragen. Du hast ja schon mal eine Vorauswahl mit Firebase Real-time Database gemacht. Das hat wohl auch einen Grund. Hat denn Firebase Real-time Database keine Dokumentation? - Deine Frage müsste doch im Einsteiger Beispiel erklärt werden: Anlegen, Bearbeiten, Lesen usw.. Wenn die keine Dokumentation haben, wieso wählst Du dann diese Databank und nicht etwas anderes mit Dokumentation??? <— Also, das frage ich mich, wenn ich deinen Beitrag lese, da das weniger mit Swift, sonder mit der DB zu tun hat..