{"id":55000271,"date":"2005-04-01T00:00:00","date_gmt":"2020-05-06T15:17:57","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=271"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"11Beziehungen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/","title":{"rendered":"1:1-Beziehungen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Direkte Beziehungen zwischen eindeutigen Schl&uuml;sseln zweier Tabellen hei&szlig;en 1:1-Beziehungen, weil jeder Datensatz der einen Tabelle mit maximal einem Datensatz der zweiten Tabelle verkn&uuml;pft sein kann. Dieser Beziehungstyp ist zwar relativ selten, aber dennoch praxisrelevant. In diesem Beitrag erfahren Sie, wann der Einsatz von 1:1-Beziehungen sinnvoll ist und welche Besonderheiten es dabei zu beachten gilt.<\/b><\/p>\n<p>Der Einsatz von 1:1-Beziehungen ist beispielsweise in folgenden F&auml;llen sinnvoll:<\/p>\n<li>Eine Tabelle hat mehr als 255 Felder und &uuml;berschreitet damit die maximal m&ouml;gliche Feldanzahl.<\/li>\n<li>Eine Tabelle enth&auml;lt selten verwendete Felder. Diese lassen sich in eine zweite per 1:1-Beziehung verkn&uuml;pfte Tabelle ausgliedern; die zweite Tabelle enth&auml;lt nur Datens&auml;tze, wenn mindestens eines der Felder gef&uuml;llt ist.<\/li>\n<li>F&uuml;r bestimmte Felder einer Tabelle sollen andere Zugriffsberechtigungen gelten. Diese lassen sich in einer zweiten Tabelle einfach festlegen.<\/li>\n<li>Der Zugriff auf die Daten soll objektorientiert erfolgen. Durch 1:1-Beziehungen l&auml;sst sich Vererbung gut nachbilden.<\/li>\n<p>Im Beitrag Artikelverwaltung mit Inventurfunktion in dieser Ausgabe von Access im Unternehmen finden Sie gleich zwei Beispiele f&uuml;r 1:1-Beziehungen. In beiden F&auml;llen enth&auml;lt eine Tabelle die Hauptdaten des zu speichernden Objekts und es gibt eine oder mehrere Tabellen mit weiteren Daten, die in einem Fall vorhanden sein m&uuml;ssen und im anderen Fall vorhanden sein k&ouml;nnen.<\/p>\n<p>Im ersten Beispiel handelt es sich um Bestands&auml;nderungen in der Artikeldatenbank. Die Bestands&auml;nderungen treten in Form von Wareneing&auml;ngen, Warenausg&auml;ngen (Bestellungen) und Umbuchungen (etwa bei Fehlbest&auml;nden zum Zeitpunkt einer Inventur) auf. Jede dieser Bestandsver&auml;nderungen hat allgemeine und spezifische Eigenschaften: Alle drei beziehen sich auf einen Artikel, enthalten eine Anzahl und ein Datum. Der Wareneingang enth&auml;lt Informationen &uuml;ber den Einkaufspreis und den Lieferanten des jeweiligen Artikels, der Warenausgang enth&auml;lt einen Verkaufspreis und Umbuchungen haben eine bestimmte Umbuchungsart und beispielsweise ein Bemerkungsfeld.<\/p>\n<h3>F&uuml;r jede Bestands&auml;nderungsart eine Tabelle<\/h3>\n<p>Theoretisch k&ouml;nnten Sie f&uuml;r Wareneing&auml;nge, Warenausg&auml;nge und Umbuchungen eine eigene Tabelle anlegen. Die drei Tabellen h&auml;tten dann einige gemeinsame Eigenschaften und einige spezielle Eigenschaften.<\/p>\n<p>Wenn man damit eine Inventur durchf&uuml;hren wollte, w&uuml;rde man eine UNION-Abfrage &uuml;ber die relevanten Felder der drei Tabellen erstellen und die gew&uuml;nschten Zahlen addieren. UNION-Abfragen sind aber nicht besonders performant; au&szlig;erdem kann man dort nicht &uuml;ber den Prim&auml;rschl&uuml;ssel auf einen der Datens&auml;tze zugreifen.<\/p>\n<p>Es l&auml;sst sich zwar ein behelfsm&auml;&szlig;iges Prim&auml;rschl&uuml;sselkonstrukt aus dem eigentlichen Prim&auml;rschl&uuml;ssel und einem tabellenabh&auml;ngigen Wert zusammensetzen, doch der Umgang damit ist relativ aufw&auml;ndig.<\/p>\n<p>Mit einer Tabelle, die alle gemeinsamen Felder enth&auml;lt, und mehreren Tabellen mit den Eigenheiten der jeweiligen Auspr&auml;gung der Bestandsver&auml;nderung l&auml;sst sich dieses Problem umgehen:<\/p>\n<p>Die Haupttabelle enth&auml;lt auf jeden Fall einen eindeutigen Prim&auml;rschl&uuml;ssel und man kann ohne Verkn&uuml;pfung auf alle abrechnungsrelevanten Daten zugreifen.<\/p>\n<p>Daf&uuml;r ist wiederum eine Verkn&uuml;pfung erforderlich, wenn man nur eine Auspr&auml;gung &#8211; also beispielsweise die Wareneing&auml;nge &#8211; mit allen Daten anzeigen oder bearbeiten m&ouml;chte.<\/p>\n<p>F&uuml;r die Erstellung einer 1:1-Beziehung m&uuml;ssen folgende Voraussetzungen erf&uuml;llt sein:<\/p>\n<li>Es liegen zwei Tabellen mit einem eindeutigen Schl&uuml;ssel vor. Das kann, aber muss kein Prim&auml;rschl&uuml;ssel sein.<\/li>\n<li>Maximal eines der beiden Felder erh&auml;lt seine Werte &uuml;ber die Autowert-Funktion.<\/li>\n<li>Die beiden zu verkn&uuml;pfenden Felder haben den gleichen Datentyp.<\/li>\n<p>Sind diese Voraussetzungen erf&uuml;llt, k&ouml;nnen Sie loslegen. Verwenden Sie als Beispiel die ebenfalls in der Artikeldatenbank enthaltene Tabelle tblAdressen, die mit der Tabelle tblRechnungsadressen um die abrechnungsrelevanten Daten erweitert werden soll.<\/p>\n<p>Im Beispiel sind nicht die beiden Prim&auml;rschl&uuml;ssel an der Beziehung beteiligt, sondern ein Prim&auml;rschl&uuml;ssel und ein eindeutiger Schl&uuml;ssel mit gleichem Namen (AdresseID). Die zweite Tabelle hat einen eigenen Prim&auml;rschl&uuml;ssel, der nicht in die Beziehung involviert ist.<\/p>\n<h3>Eindeutiger Index<\/h3>\n<p>Um ein Feld einer Tabelle als eindeutigen Index festzulegen, &ouml;ffnen Sie die Tabelle in der Entwurfsansicht und zeigen mit dem Men&uuml;befehl Ansicht\/Indizes den Dialog Indizes an.<\/p>\n<p>Dort tragen Sie den Namen des neuen Index ein, w&auml;hlen das oder die betroffenen Felder aus (in diesem Fall AdresseID) und stellen die Eigenschaft Eindeutig auf den Wert Ja ein (siehe Bild 1).<\/p>\n<p><IMG height=\"240\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic001.png\" width=\"475\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Festlegen von Indizes<\/span><\/b><\/p>\n<p>Wenn die betroffenen Tabellen im Beziehungen-Fenster sichtbar sind, m&uuml;ssen Sie nur die beteiligten Felder der beiden Tabellen verbinden, indem Sie mit der Maus eines der Felder auf das andere ziehen.<\/p>\n<h3>Achtung: Reihenfolge!<\/h3>\n<p>F&uuml;r viele F&auml;lle ist es wichtig, welche Tabelle f&uuml;r das &#8222;Ziehen&#8220; des Beziehungspfeils als Quelle und welche als Ziel dient.<\/p>\n<p>Wenn Sie referentielle Integrit&auml;t festlegen m&ouml;chten, um beispielsweise die Aktualisierungs- und L&ouml;schweitergabe zu verwenden, muss die Ausgangstabelle im Eigenschaftsfenster der Beziehung auf der linken Seite stehen (siehe Bild 2).<\/p>\n<p><!--30percent--><\/p>\n<p>In dieser Abbildung ist gut zu erkennen, dass Access die Beziehung als 1:1-Beziehung erkannt hat (s. Eigenschaft Beziehungstyp am unteren Rand des Dialogs).<\/p>\n<p><IMG height=\"409\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Eigenschaften einer 1:1-Beziehung<\/span><\/b><\/p>\n<h3>Was ist passiert<\/h3>\n<p>Mit Festlegung der Beziehung und der referentiellen Integrit&auml;t treten einige Regeln f&uuml;r die beiden Tabellen in Kraft, deren Auswirkung Sie unbedingt kennen m&uuml;ssen:<\/p>\n<li>Sie k&ouml;nnen nur Datens&auml;tze in der Tabelle tblRechnungsadressen anlegen, deren Wert im Feld AdresseID in der Tabelle tblAdressen vorhanden oder gleich Null ist.<\/li>\n<li>Wegen der Eindeutigkeit dieses Feldes in der Tabelle tblRechnungsadressen k&ouml;nnen Sie jedem Datensatz der Tabelle tblAdressen entweder keinen oder einen Datensatz der Tabelle tblRechnungsadressen zuordnen.<\/li>\n<p><IMG height=\"204\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Abfrage zum Zusammenf&uuml;hren zweier per 1:1-Beziehung verkn&uuml;pfter Tabellen<\/span><\/b><\/p>\n<li>Wenn Sie einen Datensatz der Tabelle tblAdressen l&ouml;schen, wird automatisch auch der gegebenenfalls vorhandene entsprechende Datensatz der Tabelle tblRechnungsadressen gel&ouml;scht (L&ouml;schweitergabe).<\/li>\n<p>Der Nachteil von 1:1-Beziehungen ist, dass zur Bearbeitung der kompletten Daten immer eine Verkn&uuml;pfung beziehungsweise eine Abfrage erforderlich ist. Der Vorteil bei dieser Abfrage ist, dass Sie damit wie mit einer Tabelle umgehen k&ouml;nnen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die beiden an einer 1:1-Beziehung beteiligten Tabellen werden im Folgenden Basistabelle und Erweiterungstabelle genannt. <\/p>\n<p>Wenn Sie eine Adresse inklusive Rechnungsdaten aus dem Beispiel des vorherigen Kapitels bearbeiten m&ouml;chten, erstellen Sie einfach eine Abfrage, die alle Felder der beiden Tabellen mit Ausnahme des Prim&auml;rschl&uuml;sselfeldes der Tabelle tblRechnungsadressen enth&auml;lt (siehe Bild 3). Aus Platzgr&uuml;nden sind dort nur die jeweils ersten Felder der Tabellen abgebildet.<\/p>\n<h3>Hinweis<\/h3>\n<p>In diesem Kapitel ist des &ouml;fteren die Rede davon, Daten in Tabellen oder Abfragen anzusehen oder zu bearbeiten. F&uuml;r Beispielzwecke ist das in Ordnung. Wenn eine Anwendung aber in Betrieb genommen wird, greift der Benutzer nat&uuml;rlich nur &uuml;ber Formulare und Berichte auf die enthaltenen Daten zu. <\/p>\n<h3>Alle Datens&auml;tze per Left Join<\/h3>\n<p>Die Abfrage hat lediglich einen Sch&ouml;nheitsfehler: Wenn Sie einen neuen Datensatz anlegen und nur die Felder der Basistabelle tblAdressen ausf&uuml;llen, legt Access auch nur in dieser Tabelle einen Datensatz an.<\/p>\n<p>Ein verkn&uuml;pfter Datensatz in der Erweiterungstabelle tblRechnungsadressen wird erst angelegt, wenn Sie eines der Felder dieser Tabelle f&uuml;llen (auch wenn Sie es anschlie&szlig;end wieder leeren &#8211; es reicht, den Datensatz einmal &#8222;anzufassen&#8220;). Damit ein vollst&auml;ndiger &#8222;Datensatz&#8220; (also mit Feldern in beiden Tabellen) angelegt wird, m&uuml;ssen Sie Daten in Felder beider Tabellen eintragen.<\/p>\n<p>Wenn Sie nur Daten in die Felder der Basistabelle eintragen, wird kein entsprechender Datensatz in der Erweiterungstabelle angelegt und umgekehrt.<\/p>\n<p>In beiden F&auml;llen kommen Sie an die gespeicherten Daten mit obiger Abfrage nicht mehr heran &#8211; sie zeigt nur Datens&auml;tze an, f&uuml;r die in beiden Tabellen der gleiche Wert f&uuml;r AdresseID enthalten ist.<\/p>\n<p>W&auml;hrend Sie durch &auml;ndern der Beziehungseigenschaften im ersten Fall auch alle Daten anzeigen k&ouml;nnen, die nur in der Tabelle tblAdressen vorhanden sind und keinen korrespondierenden Datensatz in der Tabelle tblRechnungsadressen enthalten, kommen Sie an allein stehende Eintr&auml;ge der Tabelle tblRechnungsadressen mit dieser Abfrage nicht auf sinnvollem Wege heran, da diese keinen Eintrag im Verkn&uuml;pfungsfeld AdresseID aufweisen.<\/p>\n<h3>Daten mit und ohne Partner anzeigen<\/h3>\n<p>Wenn eine 1:1-Beziehung dazu aufgebaut wird, selten verwendete Felder aus der eigentlichen Tabelle auszuklammern, k&ouml;nnen Sie s&auml;mtliche Datens&auml;tze der Basistabelle ohne Erweiterungsdaten direkt in der Tabelle einsehen.<\/p>\n<p>Zum Betrachten der Basisdaten einschlie&szlig;lich der entsprechenden Erweiterungsdaten verwenden Sie eine Tabelle wie oben vorgestellt.<\/p>\n<p>Wenn Sie aber einmal alle Basisdatens&auml;tze einschlie&szlig;lich Erweiterungsdaten sehen m&ouml;chten, ben&ouml;tigen Sie eine weitere Abfrage. Diese ist eine Kopie der oben vorgestellten Abfrage mit ge&auml;nderten Beziehungseigenschaften. Sie m&uuml;ssen einfach die Beziehungsart wie in Bild 4 festlegen. Unter Umst&auml;nden werden die Optionen 2 und 3 in umgekehrter Reihenfolge angezeigt; achten Sie in dem Fall einfach darauf, dass alle Datens&auml;tze der Basistabelle angezeigt und die &uuml;brigen Daten gegebenenfalls erg&auml;nzt werden.<\/p>\n<p><IMG height=\"262\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic004.png\" width=\"411\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Beziehungseigenschaften zur Anzeige aller Daten der 1:1-Beziehung<\/span><\/b><\/p>\n<p>Wenn Sie in der Beispieltabelle einige Datens&auml;tze mit und einige ohne Erweiterungsdaten angelegt haben, finden Sie beim Anzeigen der Datenblattansicht der Tabelle Datens&auml;tze wie in Bild 5 vor.<\/p>\n<p>Diese Ansicht bietet praktisch genau das Bild, das eine nicht aufgeteilte Tabelle bieten w&uuml;rde (mit Ausnahme des Schl&uuml;sselfeldes AdresseID der zweiten Tabelle). Der Unterschied ist, dass die Datens&auml;tze, die keine Erweiterungsdaten enthalten, durch den entfallenden Datensatz weniger Speicherplatz ben&ouml;tigen.<\/p>\n<p><IMG height=\"209\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Datens&auml;tze mit und ohne Erweiterungsdaten<\/span><\/b><\/p>\n<p>Wenn die Basistabelle nicht nur eine Erweiterungstabelle haben soll, sondern mehrere, &auml;ndert sich die Vorgehensweise gegen&uuml;ber dem vorherigen Beispiel. Das l&auml;sst sich gut an den Wareneing&auml;ngen, -ausg&auml;ngen und Umbuchungen der Artikelverwaltung demonstrieren.<\/p>\n<p>Bild 6 zeigt den Aufbau der drei 1:1-Beziehungen zwischen der Tabelle tblBestandsaenderungen und der jeweiligen Erweiterungstabelle.<\/p>\n<p><IMG height=\"412\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic006.png\" width=\"373\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Beispiel einer 1:1-Beziehung mit mehreren Erweiterungstabellen<\/span><\/b><\/p>\n<p>Die Beziehungen werden jeweils f&uuml;r die Tabelle tblBestandsaenderungen als Basistabelle und die entsprechende Erweiterungstabelle festgelegt. F&uuml;r alle Beziehungen gilt referentielle Integrit&auml;t mit L&ouml;schweitergabe (Aktualisierungsweitergabe macht in dem Fall keinen Sinn, da die eindeutigen Schl&uuml;ssel vermutlich nie ge&auml;ndert werden).<\/p>\n<h3>Entweder, oder &#8230;<\/h3>\n<p>Hier gibt es nicht wie bei den Adressen die M&ouml;glichkeit, entweder Erweiterungsdaten mit anzulegen oder nicht. Ein Eintrag allein in die Tabelle tblBestandsaenderungen macht definitiv keinen Sinn &#8211; eher f&uuml;hrt er noch zu fehlerhaften Ergebnissen bei Inventuren.<\/p>\n<p>Jeder Eintrag dieser Tabelle muss definitiv genau einen passenden Datensatz in einer der drei Erweiterungstabellen haben.<\/p>\n<p>Eine Abfrage &aacute; la &#8222;Beinhaltet ALLE Datens&auml;tze aus &#8222;tblBestandsaenderungen&#8220; und nur die Datens&auml;tze aus &#8222;tblUmbuchungen&#8220;, bei denen die Inhalte der verkn&uuml;pften Felder gleich sind&#8220; wie in dem Beispiel mit den Adressen und Rechnungsdaten funktioniert hier nicht, da so zwar richtigerweise alle Bestands&auml;nderungen durch Umbuchungen mit dem entsprechenden Eintrag in der Erweiterungstabelle angezeigt w&uuml;rden, aber eben auch die Bestands&auml;nderungen durch Wareneing&auml;nge oder -ausg&auml;nge, allerdings ohne entsprechende Detaildaten.<\/p>\n<p>Also verwendet man hier beispielsweise die Abfrage aus Bild 7. Die Abfrage liefert alle Datens&auml;tze der beiden enthaltenen Tabellen zur&uuml;ck, deren eindeutige Schl&uuml;ssel &uuml;bereinstimmen.<\/p>\n<h3>Erzwingen vollst&auml;ndiger Daten<\/h3>\n<p>Damit die Daten konsistent bleiben, m&uuml;ssen Sie den Benutzer in diesem Fall dazu bringen, immer Datens&auml;tze f&uuml;r beide Seiten der 1:1-Beziehung anzulegen.<\/p>\n<p>Um die folgenden Schritte nachvollziehen zu k&ouml;nnen, legen Sie ein einfaches Beispielformular mit obiger Abfrage (enth&auml;lt alle Felder der beiden Tabellen) an und ziehen alle Felder der Datenherkunft in den Detailbereich wie in Bild 8.<\/p>\n<p>Die einfachste Variante, f&uuml;r ein Anlegen von Datens&auml;tzen auf beiden Seiten der Beziehung zu sorgen, ist eine entsprechende Validierung f&uuml;r eines oder mehrere Felder je Seite wie beispielsweise in Quellcode 1.<\/p>\n<pre>Private Sub Form_BeforeUpdate(Cancel As Integer)\r\n    If IsNull(Me.LieferantID) Then\r\n        MsgBox \"Bitte w&auml;hlen Sie einen Lieferanten aus.\"\r\n        Me!LieferantID.SetFocus\r\n        Exit Sub\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Private Sub Form_BeforeUpdate(Cancel As Integer)\r\n    Me.tblWareneingang_BestandsaenderungID = Me.tblBestandsaenderungen_BestandsaenderungID\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p><IMG height=\"312\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic007.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Abfrage der Bestands&auml;nderungen durch Wareneing&auml;nge<\/span><\/b><\/p>\n<p><IMG height=\"248\" src=\"..\/fileadmin\/_temp_\/{077881BF-268E-46B4-B63F-E5A1D9AF6EF1}\/pic008.png\" width=\"452\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Formular zur Bearbeitung einer 1:1-Beziehung<\/span><\/b><\/p>\n<p>Das macht allerdings keinen Sinn, wenn Sie &uuml;berhaupt nur wollen, dass in der Erweiterungstabelle erstmal &uuml;berhaupt ein Datensatz angelegt wird, da ja sonst beide Seiten der Verkn&uuml;pfung nicht mehr angezeigt werden k&ouml;nnen.<\/p>\n<p>Die L&ouml;sung ist ganz einfach:<\/p>\n<p>Um einen Datensatz in der Erweiterungstabelle anzulegen, der zu dem aktuellen Datensatz der Basistabelle passt, m&uuml;ssen Sie lediglich den Wert des eindeutigen Feldes der Erweiterungstabelle auf den Wert des verkn&uuml;pften Feldes der Basistabelle einstellen &#8211; und das vor dem Speichern der Daten.<\/p>\n<p>Dazu ist das Ereignis Vor Aktualisierung des Formulars pr&auml;destiniert. Die einzige notwendige Anweisung erg&auml;nzt die Ereignisprozedur zu der aus Quellcode 2.<\/p>\n<p>Die Verwendung von 1:1-Beziehungen kann zwar in den meisten F&auml;llen umgangen werden, aber manchmal ist ihr Einsatz definitiv sinnvoll.<\/p>\n<p>Sie sollten zumindest &uuml;ber ihren Einsatz nachdenken, wenn Tabellen mit sehr vielen Datens&auml;tzen Felder enthalten, die nur sehr selten verwendet werden. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Direkte Beziehungen zwischen eindeutigen Schl&uuml;sseln zweier Tabellen hei&szlig;en 1:1-Beziehungen, weil jeder Datensatz der einen Tabelle mit maximal einem Datensatz der zweiten Tabelle verkn&uuml;pft sein kann. Dieser Beziehungstyp ist zwar relativ selten, aber dennoch praxisrelevant. In diesem Beitrag erfahren Sie, wann der Einsatz von 1:1-Beziehungen sinnvoll ist und welche Besonderheiten es dabei zu beachten gilt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022005,662005,44000021],"tags":[],"class_list":["post-55000271","post","type-post","status-publish","format-standard","hentry","category-66022005","category-662005","category-Tabellen_und_Datenmodellierung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>1:1-Beziehungen - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/11Beziehungen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"1:1-Beziehungen\" \/>\n<meta property=\"og:description\" content=\"Direkte Beziehungen zwischen eindeutigen Schl&uuml;sseln zweier Tabellen hei&szlig;en 1:1-Beziehungen, weil jeder Datensatz der einen Tabelle mit maximal einem Datensatz der zweiten Tabelle verkn&uuml;pft sein kann. Dieser Beziehungstyp ist zwar relativ selten, aber dennoch praxisrelevant. In diesem Beitrag erfahren Sie, wann der Einsatz von 1:1-Beziehungen sinnvoll ist und welche Besonderheiten es dabei zu beachten gilt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/11Beziehungen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:57+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"1:1-Beziehungen\",\"datePublished\":\"2020-05-06T15:17:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/\"},\"wordCount\":2226,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/5121cd3d7d894a43a6a83e82df5abefd\",\"articleSection\":[\"2\\\/2005\",\"2005\",\"Tabellen und Datenmodellierung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/\",\"name\":\"1:1-Beziehungen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/5121cd3d7d894a43a6a83e82df5abefd\",\"datePublished\":\"2020-05-06T15:17:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/5121cd3d7d894a43a6a83e82df5abefd\",\"contentUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/5121cd3d7d894a43a6a83e82df5abefd\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/11Beziehungen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"1:1-Beziehungen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"1:1-Beziehungen - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/","og_locale":"de_DE","og_type":"article","og_title":"1:1-Beziehungen","og_description":"Direkte Beziehungen zwischen eindeutigen Schl&uuml;sseln zweier Tabellen hei&szlig;en 1:1-Beziehungen, weil jeder Datensatz der einen Tabelle mit maximal einem Datensatz der zweiten Tabelle verkn&uuml;pft sein kann. Dieser Beziehungstyp ist zwar relativ selten, aber dennoch praxisrelevant. In diesem Beitrag erfahren Sie, wann der Einsatz von 1:1-Beziehungen sinnvoll ist und welche Besonderheiten es dabei zu beachten gilt.","og_url":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:57+00:00","og_image":[{"url":"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"1:1-Beziehungen","datePublished":"2020-05-06T15:17:57+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/"},"wordCount":2226,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd","articleSection":["2\/2005","2005","Tabellen und Datenmodellierung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/11Beziehungen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/","url":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/","name":"1:1-Beziehungen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd","datePublished":"2020-05-06T15:17:57+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/11Beziehungen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#primaryimage","url":"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd","contentUrl":"http:\/\/vg04.met.vgwort.de\/na\/5121cd3d7d894a43a6a83e82df5abefd"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/11Beziehungen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"1:1-Beziehungen"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000271"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000271\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}