Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: gsaccess am Februar 18, 2024, 10:43:55

Titel: Adressen in einer DB
Beitrag von: gsaccess am Februar 18, 2024, 10:43:55
Ich habe in der neuen DB den Adressenteil nach Anleitung von Klaus erstellt.
1.
Für mich ist nicht nachvollziehbar welchen Vorteil die beiden Tabellen tblKommAdressen und tblKommunikationsart gegenüber der Aufnahme der 5 Spalten (TelFirma, TelPrivat,...in tblKommunikationsart)in der tblKunden bringt.
In der Anlage eine TestDB mit den Tabellen und Beziehungen und einigen Testdaten.
Mit den Abfragen ...ANF füge ich die Daten an die neuen Tabellen an.
Mit den Abfraben ..INK überprüfe ich die vollständige Übernahme der Daten.
2. Warum die Adresse KundenNr 21 nicht angefügt wird, ist für mich nicht nachvollziehbar, da es in der tblKunden den Kunden mit der Nr21 ja gibt.(Schlüsselverletzung)
3. Wie kann ich die Kommunikationsadressen aus der Stammdaten_Kunden übernehmen? (siehe Abfreage tblKommAdressen_ANF) Wenn ich die Struktur verstanden habe, müsste es für jede Kommunikationsart in Stammdaten_Kunden in der neuen Tabelle tblKommAdressen einen Datensatz mit der jeweiligen KundenID, der KommArtID und der KommAdresse geben.
Wo habe ich hier Denk_/ und andere _Fehler.

Günther


Titel: Re: Adressen in einer DB
Beitrag von: MzKlMu am Februar 18, 2024, 11:11:11
Hallo,


Zu 1)
Die Frage kannst Du Dir selbst beantworten. Versuche mal mit Deinen 5 Feldern eine weitere Firmentelefonnummer (z.B. für Homeoffice, oder vormittags, nachmittags, oder vorrübergend usw.) hinzufügen. Einfach ein 6. Feld einfügen, das würde einen Rattenschwanz von Änderungen in allen Objekten erforderlich machen, alles, einfach alles müsste geändert werden. Mit der n:m Struktur wäre das einfach nur ein neuer Eintrag für die KomArt.
Das Feld "KommAdresse" in der Tabelle "tblKommAdressen" solltest Du umbenennen in "Eintrag" (z.B.) außerdem die Tabelle noch um eine Feld für Bemerkungen (Da könnte man z.B. Zeiten reinschreiben).

Zu 2)
Da stellst Du Dir selbst ein Bein. Die Beziehungen laufen ja über die ID, mit der Kundennummer hat das nichts zu tun. Es gibt den Kunden mit der Nummer 21, aber nicht mit der ID 21. Das musst Du anpassen. Das FS Feld solltest Du auch umbenennen von KundenNr_F in KundenID_F. Mit KundenNr_F hast Du Dich selbst verwirrt.

Zu 3)
Hast Du richtig verstanden.

Kannst du bitte mal noch das Thema hier verlinken mit meiner Anleitung.
Titel: Re: Adressen in einer DB
Beitrag von: ebs17 am Februar 18, 2024, 12:38:32
ZitatFür mich ist nicht nachvollziehbar welchen Vorteil die beiden Tabellen tblKommAdressen und tblKommunikationsart gegenüber der Aufnahme der 5 Spalten (TelFirma, TelPrivat,...in tblKommunikationsart)in der tblKunden bringt.
Deine Vorstellung ist wie bei vielen Neulingen eine Augenblicksaufnahme. Da kämst Du einigermaßen hin. Aber wenn es in zwei Monaten eine neue und extrem verwendete Kommunikationsform Mucky gibt, müsstest Du Deine Tabelle und alle darauf aufbauenden Abfragen, Formulare, Berichte, Codes nachbessern.
Und da wichtige und gutgemachte Datenbanken i.d.R. langlebig sind, werden solche Fälle eintreten. Auch werden sich Telefonnummern, Mailadressen u.a. ändern oder zusätzlich ergeben wegen zusätzlicher Funktionalität wie anderer Job, Zweitwohnsitz usw., und das, ohne die alten Werte verlieren zu wollen.

Wenn man seine Datenbankanwendung nur wegen ein paar neuen Daten umbauen muss, hat man ein erhebliches Problem. Die von Klaus gezeigte Gestaltung zeigt da eine viel höhere Flexibilität. Neue Kommunikationsarten und auch neue Telefonnummern (mit einer zeitlichen Abhängigkeit) kann man beliebig ergänzen.
 
Die Entscheidungsfrage ist also: Bist Du eher an der Erstellung eines Reparaturkandidaten interessiert oder an einer einfach erweiterungsfähigen Lösung?

Titel: Re: Adressen in einer DB
Beitrag von: gsaccess am Februar 18, 2024, 20:16:02
Vielen Dank für die ausführlichen Rückmeldungen und die Anregungen.
Damit sind die Vorteile des Datenbankmodels von Klaus klar.

Genaues Arbeiten bei der Datenbankstruktur macht eben Sinn!!
Vielen Dank!
Günther

siehe auch:
https://www.access-o-mania.de/forum/index.php?topic=26645.msg159312#msg159312 (https://www.access-o-mania.de/forum/index.php?topic=26645.msg159312#msg159312)