MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 10.01.2017, 16:51   #1
rainerZZ
MOF User
MOF User
Standard Acc2010 - Verbindung zwischen 2 Tabellen immer über ID sinnvoll?

Hallo!
Ich verwende 2 Tabellen, eine Haupttabelle, wo ich alle DS aufliste. Einem DS aus der Haupttabelle will ich einen Namen zuordnen. Die Namen sind aufgelistet in einer 2.Tabelle und verknüpft über die ID des Namens. D.h. in die Haupttabelle trage ich nicht den Namen an sich, sondern eine Nummer ein.

Macht man das so oder wäre eine Zuordnung direkt über den Namen sinnvoller? Bin mir da etwas unsicher, wo die Vor- und Nachteile liegen.
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2017, 16:56   #2
maikek
MOF Guru
MOF Guru
Standard

Moin,
soll das eine 1:1 Beziehung sein? Ansonsten wäre richtig: Namenstabelle mit ID und verknüpft zu Fremdschlüsselfeld in Haupttabelle (1:n).
Verknüpfungen über Zahlwerte haben diverse Vorteile. Bei Namen z.B. ist schon der zweite Müller ein GAU und jetzt sag' nicht, den wird es aber nie geben .
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2017, 17:30   #3
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

ja 1:n ist die Beziehung. Genauso habe ich es gemacht mit ID in Namenstabelle und Fremdschlüssel in Haupttabelle. Dann ist ja gut.

Ja hast recht
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2017, 23:55   #4
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

@maikek,

Wenn ich jetzt eine größere Liste mit Namen habe, die ich nach einem Jahr einfach mal aktualisiert neu einpflegen will. Dann habe ich aber das Problem oder den Aufwand, dass die ID sich nicht bei den einzelnen Namen ändern darf oder lieg ich da falsch?
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2017, 07:05   #5
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,

Zitat:

dass die ID sich nicht bei den einzelnen Namen ändern darf oder lieg ich da falsch?

nein, die darf sich nicht ändern.
Daher sind für eine Aktualisierung 2 Schritte erforderlich.

Bestehende Namen > Aktualisierungsabfrage mit eindeutigen Merkmalen
Neue Namen > Anfügeabfrage

__________________

Gruß
Klaus
Office2003, Win7
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2017, 17:44   #6
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

Und wenn ich bspw. den Namen bzw. dann die Namen-ID in dem DS behalten möchte, aber bspw. in einem formular in einem kombinaitionsfeld nicht mehr aktuell zur auswahl stehen soll, wie gehe ich mit sowas um? Kann man sowas über eine checkbox in der Tabelle regeln?
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2017, 17:57   #7
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
was ist die Bedingung für einen nicht mehr aktuellen Namen ?

__________________

Gruß
Klaus
Office2003, Win7
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.01.2017, 18:09   #8
maikek
MOF Guru
MOF Guru
Standard

Zitat:

Kann man sowas über eine checkbox in der Tabelle regeln?

Geht auch. Oder ein Datumsfeld (Ausgeschieden ... oder so ähnlich) verwenden.
Oder ... siehe Frage von Klaus.
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2017, 21:36   #9
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ich muss euch nochmal fragen.

Ist der einzige Vorteil über die Zuweisung über die ID, dass ich doppelte Namen eindeutig zuordnen kann? Ich finde es persönlich erschwerend, wenn ich bei einem DS zwar noch den Namen gespeichert haben möchte (für ältere Datensätze), aber in einem Kombinationsfeld nicht mehr anzeigen möchte (weil einfach die Liste veraltet sein kann), über eine Checkbox in der Tabelle zu regeln.

Wo liegt der entscheidende Nachteil, wenn ich eine Tabelle mit den Namen erstelle (ohne ID) und direkt den Namen der Haupttabelle zuweise? Voraussetzung, ich kann garantieren, dass doppelnennungen ausgeschlossen sind. So könnte ich das Kombinationsfeld beliebig aktualisiern über die Liste und müsste nicht auf die IDs achten...
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2017, 21:56   #10
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
die IDs sind völlig nebensächlich. Du verstehst die Zusammenhänge nicht richtig.
Die Lösung mit dem Hakenfeld (inaktiv) oder ein Datum zum ausfiltern nicht mehr aktueller Daten ist der datenbankgerechte und übliche Weg.

Ich kann Dir auch nicht ganz folgen, mit der Schilderung Deiner Probleme.

Zitat:

Voraussetzung, ich kann garantieren, dass doppelnennungen ausgeschlossen sind.

wie willst Du das für die Zukunft garantieren ?

__________________

Gruß
Klaus
Office2003, Win7
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2017, 22:04   #11
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ich verstehe schon,dass über die IDs eine eindeutige Zuordnung garantiert wird, welche über die Namen direkt nicht habe.

Die Lösung mit dem Hakenfeld (inaktiv) oder ein Datum zum ausfiltern nicht mehr aktueller Daten ist der datenbankgerechte und übliche Weg.

Ok, den Satz wollte ich hören. Ich dachte, ein inaktiv Feld wäre eher eine geknaupte lösung
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2017, 22:06   #12
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Wo liegt der entscheidende Nachteil, wenn ich eine Tabelle mit den Namen erstelle (ohne ID) und direkt den Namen der Haupttabelle zuweise?

Es ist ein Grundprinzip in einer Datenbank, eine Stamminformation nur an genau einer Stelle zu speichern und auf diese dann nur über einen Schlüssel zu verweisen. Damit werden Datenanomalien, die aus Anfügen, Ändern und Löschen entstehen können, vermieden.

Beispiel: Wenn Max nicht mehr Max genannt werden will, sondern Maximilian, würde man in der Namenstabelle nur diesen einen Wert ändern müssen, und über die Verknüpfungen erscheint dann diese Änderung automatisch in allen aufgerufenen Abfragen.

Nimmst Du aber den Namen als Schlüssel oder trägst diesen in zusätzliche Tabellen ein, muss zur Wahrung der Datenintegrität dann überall nachgeändert werden. Dieses Nachändern ist dann sehr schnell komplex, fehleranfällig und unvollständig, wenn die Datenbank dann etwas komplexer ist und keiner mehr auf Anhieb sagen kann, wo denn überall diese Namen eingesetzt werden.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2017, 22:24   #13
rainerZZ
Threadstarter Threadstarter
MOF User
MOF User
Standard

Code:

Beispiel: Wenn Max nicht mehr Max genannt werden will, sondern Maximilian, würde man in der Namenstabelle nur diesen einen Wert ändern müssen, und über die Verknüpfungen erscheint dann diese Änderung automatisch in allen aufgerufenen Abfragen.
Ok, ja das macht Sinn.

Eine Frage hätte ich noch: Wenn ich eine Tabelle ggf. aktualisieren möchte, sollte ich die ID nicht als Autowert machen oder? Weil ich dann die IDs nicht selbst bestimmen kann.

Ich erstelle also eine neue Tabelle, wo ich die neue Liste reinlade (inkl. selbst bestimmter IDs -> Dann muss ich aber doch manuell prüfen, ob die IDs schon vergeben sind oder, wenn ich die ID nicht als autowert mache? ) und mache eine anfügeabfrage auf die bestehende Tabelle.. ist das richtig so?
rainerZZ ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.01.2017, 22:27   #14
Nouba
MOF Guru
MOF Guru
Standard

Eine Kurzerklärung mit den wesentlichen Vor- und Nachteilen findest Du unter Surrogatschlüssel (etwas ausführlicher in der englischen Version) beschrieben.
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.