Seite 1 von 1

Relationen in MySQL

Verfasst: Di 1. Aug 2017, 19:18
von Barbarossa
Ich verwende LibreOffice unter Linux (OpenSuse). Die MySQL/MariaDB - Datenbank liegt auf meinem NAS. Das Problem, das ich nun gelöst habe, hatte ich schon einmal vor 3 1/2 Jahren hier angesprochen. https://libreoffice-forum.de/viewtopic. ... nen#p32525.
Ein "boser" hatte damals den richtigen Tipp gegeben. Ich zeige einmal ein Bild der Beziehungen:
Relationen.png
Relationen.png (20.31 KiB) 1525 mal betrachtet
Das Wesentliche: Es geht darum eine m:n Beziehung zu erstellen. Dazu erstellt man eine vermittelnde Tabelle mit jeweils einer 1:n Beziehung zu den entsprechenden Tabellen. In den Beispieldatenbanken zu LibreOffice sehen diese Tabellen aus wie die untere Tabelle "Test" in meinem Bild. 2 Spalten bilden den Primärschlüssel. Bei meiner MySQL-Datenbank geht das nicht. Die Beziehungen werden nur als Linien dargestellt ohne "1" und "n". Nach Speichern und wieder Aufrufen sind die Beziehungen nicht mehr vorhanden. Mit der von "boser" beschriebenen Weise, die in der obrigen Tabelle dargestellt ist geht es.
Mache ich etwas falsch? Liegt der Fehler in LibreOffice oder dessen Dokumentation?

Re: Relationen in MySQL

Verfasst: Di 1. Aug 2017, 21:33
von RobertG
Hallo Barbarossa,

Relationen und MySQL/MariaDB sind ein besonderes paar Schuhe. Die Tabellenform, die lange Zeit Standard war, unterstützt gar keine Relationen: MyISAM. Die Tabellenform, die Du jetzt wohl verwendest, ist InnoDB. Dort können Fremdschlüssel und Referenzen gesetzt werden.

Die Beispiele im Handbuch beziehen sich auf die interne HSQLDB. Im neuesten Handbuch ist an verschiedenen Stellen bereits der Blick auf die im Experimentalstadium befindliche interne Firebird-Datenbank geworfen worden. Für alle anderen Datenbanken, die irgendwie Kontakt zur Benutzeroberfläche von Base finden, sind hier Abstriche zu machen. Da gibt es eben Funktionen, die nicht so einfach übertragbar sind.

Ich habe jetzt nicht getestet, ob ich mit MySQL eine Verbindung auch zur Tabelle "Test" hinbekommen würde. Ich würde allerdings auch zuerst mit PHPMyAdmin versuchen, und wenn es da nicht geht, dann eben direkt mit SQL.

Gruß

Robert