❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Eingabemaske für n:m Verbindungen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Eingabemaske für n:m Verbindungen

Beitrag von MoonKid » Di 25. Jul 2017, 13:14

Ich weiß wie man auf Ebene der Datenbank eine n:m Relation hinbekommt. Das ist hier nicht die Frage. Die Frage ist, wie man das für den nicht versierten User ansprechend präsentiert z.B. in der eingabemaske (Form).

Beispiel:
Tabelle PERSON: id, name, sprache
Tabelle SPRACHE: id, bezeichnung
Tabelle PERSON_SPRACHE: id, person_id, sprache_id

Wichtig: Eine Person kann mehrere Sprachen haben!

Kann man das als "Form" abbilden, z.B. in einem Drop Down Menü?

Wie würde man so eine Struktur z.B. nach Calc, Excel, CSV exportieren - z.B. ins wide-format?

CSV-Felder:
PERSON_id; PERSON_name; spracheA_id; spracheA_bez; spracheB_id; ...; spracheZ_id;

Meine User (Kollegen) wissen nichts von n:m Beziehungen.
Ich möchte meine Daten effizent eingeben und bearbeiten, aber gleichzeitig meinen Kollegen, die ebenfalls mit den Daten arbeiten müssen, nicht vor zu "große" Hürden stellen.

RobertG
* LO-Experte *
Beiträge: 2888
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Eingabemaske für n:m Verbindungen

Beitrag von RobertG » Di 25. Jul 2017, 17:22

Hallo MoonKid,
MoonKid hat geschrieben:
Di 25. Jul 2017, 13:14
Beispiel:
Tabelle PERSON: id, name, sprache
Tabelle SPRACHE: id, bezeichnung
Tabelle PERSON_SPRACHE: id, person_id, sprache_id
Ich nehme an, dass bei der Tabelle PERSON das Feld Sprache nicht geplant ist, da das ja über die Tabelle PERSON_SPRACHE geregelt wird.
Wenn sich PERSON im Hauptformular befindet, dann gehört in das Unterformular die Tabelle PERSON_SPRACHE. Dort baust Du lediglich ein Tabellenkontrollfeld mit einem Listenfeld für die Sprachen ein.
Schau Dir dazu im Handbuch im Kapitel "Einführung in Base" das Testbeispiel an.
MoonKid hat geschrieben:
Di 25. Jul 2017, 13:14
CSV-Felder:
PERSON_id; PERSON_name; spracheA_id; spracheA_bez; spracheB_id; ...; spracheZ_id;
Wenn die Sprachen in der Menge begrenzt sind, dann ist das eine Möglichkeit. Hierzu musst Du allerdings zuerst eine Ansicht erstellen, bei der die Zeilen eine durchgehende Nummerierung für jede person_id erhalten. Dann kannst Du durchnummeriert mit Unterabfragen arbeiten.
Siehe dazu im Handbuch "Datenbank-Aufgaben" das Unterkapitel "Gruppieren und zusammenfassen" an.

Einfacher ist es, wenn Du nicht gerade mit der internen HSQLDB arbeitest, wenn Du alle Sprachen in einem Feld zusammenfassen lässt. Das entspricht natürlich nicht Deiner *.csv-Datei, die eben eher auf ein bestimmtes Höchstmaß angelegt ist.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MoonKid
Beiträge: 172
Registriert: Fr 14. Okt 2011, 21:26

Re: Eingabemaske für n:m Verbindungen

Beitrag von MoonKid » Di 25. Jul 2017, 17:29

Danke für die Handbuch-Hinweise, die schaue ich mir an.
RobertG hat geschrieben:
Di 25. Jul 2017, 17:22
Einfacher ist es, wenn Du nicht gerade mit der internen HSQLDB arbeitest, wenn Du alle Sprachen in einem Feld zusammenfassen lässt. Das entspricht natürlich nicht Deiner *.csv-Datei, die eben eher auf ein bestimmtes Höchstmaß angelegt ist.
Ja, das wäre einfacher. Aber dann könnte ich die Personen nicht mehr (einfach) statistisch nach Sprache auswerten. z.B. Wieviele Personen mit "Deutsch", wieviele Personen mit "Deutsch" und "Japanisch" aber nicht "Polnisch". :D


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten