Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Access: Datenbank-Coaching – Beispiel Kundenverwaltung

Lösung: Kundenkontaktdaten sinnvoll speichern

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Anstatt ein kompliziertes und unbefriedigendes Datenmodell zu erstellen, können mit speziellen Ansprechpartnern auch allgemeine Kundenkontaktdaten gespeichert werden.

Transkript

Da bin ich hier mal gespannt, wie Ihre Lösung aussieht. Ich wette, Sie sind nicht so richtig zufrieden, und ich kann Ihnen auch gleich erklären warum. Meine Lösung ist möglicherweise keine Lösung, lassen sich mal überraschen. Wenn es also darum geht, die Kunden-Kontaktdaten irgendwo unterzubringen, dann spricht das erstmal für eine neue Tabelle. Hier sind sie gestrichen, die kommen hier an eine neue Tabelle, ich fahre das mit einem Tick nach unten, und diese Tabelle hat nicht ganz zufällig eine gewisse Ähnlichkeit mit den Ansprechpartner-Kontaktdaten. Ich habe mir nich mal eine Mühe gemacht das Präfix zu ändern, es ist nur hier ein anderer Fremdschlüssel, also das ist ein Verweis auf den Kunden, und nicht wie hier auf den Ansprechpartner. Für den Typ kann ich die gleiche Nachschlagetabelle benutzen, und würde dann also hier die Kontaktdaten für die Kunden ablegen. Das funktioniert technisch, soweit ist alles in Ordnung, aber zwei Tabellen, die sich so ähnlich sind, um nicht zu sagen, die sind ja praktisch gleich, sind immer verdächtig. Da sollte man überlegen, ob man die nicht zusammenlegen kann. Ganz häufig sehe ich Konstruktionen, die zeigen zum Beispiel, Tabelle-Umsätze Januar, und dann gibt es Tabelle-Umsätze Februar, Tabelle-Umsätze März und so weiter. Sie können sich vorstellen, wie das weitergeht, anstatt eine Tabelle Umsätze zu machen und hinten ein zusätzliches Feld, welches dann dazusagt, das ist ein Datensatz aus dem Januar und dieser Datensatz ist aus dem Februar. Eine Tabelle mit einem Unterscheidungsfeld statt 12 Tabellen. Und das genau haben wir gerade hier. Zwei Tabellen, die eigentlich nur ein Unterscheidungsfeld bräuchten. Das heißt, es bietet sich ein bisschen an die Beiden zusammenzufügen, das sind ja alles die Gleichen, sagen wir zum Beispiel so, eine einzige Tabelle, die dann hier wahlweise einen Fremdschlüssel auf Ansprechpartner- oder Kunde-ID hat. Und Sie ahnen es schon an dieser Markierung dieser unentschiedene Feldname ist noch kein Beweis, weil ich nicht weiß, auf wen er zeigt, aber es ist technisch nicht möglich, dass ein Feld auf zwei verschiedene Primärschlüssel zeigt. Sie können natürlich hier einfach eine eins reinschreiben, und müssen sich irgendwie merken, ob das die Eins vom Ansprechpartner von der ID ist oder von der Kunden-ID. Aber Sie können referentielle Integrität herstellen zwischen zwei verschiedenen, genau gesagt zwischen 3, also diesem Feld und zwei anderen Tabellen. Jetzt können Sie natürlich anfangen das selber zu programmieren, Sie machen ein zusätzliches Feld, da steht drin die Auswahl dieses ist die Fremdschlüssel-ID vom Ansprechpartner oder dieses mal ist der Kunde gemeint, das heißt zu der eins hier gibt es noch ein zweites Feld, wo dann was auch immer ein K und ein A drinsteht, und K1 sagt, das ist eine Kunden-ID, und A1, das ist eine Ansprechpartner-ID. Damit haben Sie erstens keine referentielle Integrität und müssen zweitens alles selber programmieren, das bedeutet, wenn Sie hier einen Datensatz löschen, müssen Sie dafür sorgen per Datemmacros, dass garantiert alle Kontaktdaten gelöscht werden, und zwar die Jenigen, die A1 oder A2 oder A3, jedenfalls die passende Nummer haben. Weil referentielle Integrität nicht mehr funktioniert, und entsprechend hier ein Datenmacro, was dann zu Fuß überwacht, wenn Sie hier einen mit der Nummer K1 zum Beispiel löschen, hier die Eins, Da müssen Sie die entsprechenden Kontaktdaten löschen und alle zugehörigen untergeordneten Tabellen, wenn es die denn noch gibt. Im Moment haben Sie Glüsk, aber ich kann Ihnen versprechen das wird keinen Spaß. Sie müssten die komplette referentielle Integrität nachprogrammieren. Es geht irgendwie und wenn es keine andere Lösung gibt, dann muss man wohl in den sauren Apfel beißen, und ich kann Ihnen jetzt schon sagen, es wird keine perfekte Lösung geben, eine diese rundum glücklich macht, aber wenigstens eine die Datenbank recht funktioniert. Also das ist es auch nicht, nicht nur wegen des unentschiedenen Feldnamens für den Fremdschlüssel, sondern weil Sie dann referentielle Integrität selber nachprogrammieren müssen. Was halten Sie von dieser Variante? Sie können jetzt zurecht einwenden, die habe ich doch schon mal gesehen. Ja, abgesehen davon, dass ich jetzt hier die Felder schon mal gelöscht habe, haben Sie genau das schon mal gesehen. Die Kontaktdaten beziehen sich auf die Ansprechpartner und nur auf die. Es sind hier Felder weggefallen, un deren Inhalt wandert tatsächlich hier rein. Die Lösung ist sozusagen keine Datenbank-Designe-Lösung, sondern eine Inhaltslösung. Bisher ist es so, wenn Sie die Firma Müller, Meier und Partner haben, dann gibt es dort zum Beispiel einen Ansprechpartner Müller und der hat Kontaktdaten. Und es gibt meinentwegen noch ein Ansprechpartner Meier, der hat auch Kontaktdaten. Und es mag noch ein Ansprechpartner Schmidt geben mit seinen wiederum eigenen Kontaktdaten, aber es sin alles echte Personen. Wenn Sie diese Konstruktion jetzt inhaltlich soweit erweitern, dass Sie sagen, zu jedem Kunden gibt es eine, ich nenne es in Anführungszeichen Person, eher eine juristische Person, die heißt beispielsweise Firma, kein Vorname, Nachname ist Firma oder so was, dann stehen an dieser Person, an diesem Ansprechpartner seine Kontaktdaten. Sie brauchen keine neue Tabelle, bestenfalls würden Sie einen neuen Typ erfinden, einen Ansprechpartnertyp, echte Person, juristische Person oder so was, damit Sie die unterscheiden können, aber Sie braucen nur, um die Daten von der Firma, von den Kunden und die Kontakdaten verlagern zu dürfen, dazwischen geschaltet einen neutralen Ansprechpartner, der für die Firma als Ganzes steht. Das hat nebenbei noch weitere Vorteile, wenn Sie zum Beispiel hier eine Liste mit Adressen dranhängen, auch das fehlt ja noch so ein bisschen, dann funktioniert er ja genau so, Sie können zu jeder Person sagen nicht nur die Kontaktdaten, sondern meinentwegen auch Adressdaten und auch das bräuchten Sie für eine Firma. Also es ist keine Datenmodelländerung, sondern eine inhaltliche Änderung, die eigentlich am geschicktesten ist, der Erste von allen Ansprechpartnern ist derjenige, der die Firma insgesamt repräsentiert. Dafür können Sie sich irgendeinen neutralen Namen ausdenken, wenn Sie den herausfiltern wollen, oder sauberer wäre eigentlich eine eigene Nachschlagetabelle zu machen. Wenn Sie es also ganz sauber abbilden wollen, dann kommt jetzt eine neue Tabelle dazu, nämlich die Tabelle Ansprechpartnertypen, die eigentlich nichts machen, außer hier eine Unterscheidung zu erlauben, nämlich hier im Fremdschlüssel für die Ansprechpartner. Da gibt es den Typ allgemein oder konkret. Sie können ihn auch nennen juristische Person, natürliche Person, sodass Sie hier später unterscheiden könen, das sind nur die Daten zur Firma mit dem entsrechenden Typ, oder das sind echte Ansprechpartner. Das ist also von allen, die am wenigsten unsauberste Lösung, wenn man das so sagen darf, das Datenmodell braucht keine Klimmzüge, die gegen referentielle Integrität arbeiten, und Sie bleiben hier mit wenigen Tabellen im übersichtlichen Bereich. Das ist ja das Grundkonzept eines Datenmodells, möglichst wenige Tabellen mit möglichst wenigen Spalten, aber so viel Zeilen, wie Sie wollen. Und das haben wir jetzt wieder hier eingehalten, zwar haben wir nur diese fiktive Tabelle, die mal hier gelb da runterstand, gegen eine Andere dort ausgetauscht, aber im Sinne des Datenmodells ist das hier weniger.

Access: Datenbank-Coaching – Beispiel Kundenverwaltung

Aufgaben und Lösungen für den Datenbankentwurf. Diesmal am Beispiel einer einfachen Kundenliste, die zu einem Datenmodell für die Kundenverwaltung weiterentwickelt wird.

1 Std. 0 min (20 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!