🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ 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. 🤗

Mehrere Primärschlüssel für eine Tabelle

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
wartburgritter
Beiträge: 101
Registriert: Di 13. Nov 2012, 18:28

Mehrere Primärschlüssel für eine Tabelle

Beitrag von wartburgritter » Do 14. Nov 2013, 21:07

Hallo zusammen,
Ich habe ein wenig im neuen Handbuch für Base 4.1 herumgestöbert. Erstmal wieder eine riesen lob und dankeschöne in deine Richtung Robert. Da ich wieder dazugelernt habe sind natürlich wieder auch Fragen aufgetaucht. Anbei ist ein Screenshot der hier (http://www.libreoffice-forum.de/viewtop ... 647#p24674) geposteten Tabelle. Im handbuch ab Seite 48 sind ausführlich die Beziehungen besprochen. Wenn ich das für meine Tabelle anwende ergeben sich für mich folgende Anpassungen:

- Da jedem Projekt genau ein Ort, Gebäudetyp, Bautyp, Projektstatus und Projektleiter zugeordnet ist, sind dass alles 1_zu_1 Beziegungen anstatt 1_zu_n.

- Die Tabelle Projektfirmen wäre eigentlich besser mit rel_Projekt_Firma_Projektaufgabe bezeichnet.

- In der Tabelle Projektfirmen müssten alle 4 Spalten Primärschlüssel sein, oder besser alle drei und die Spalte ID könnte entfallen.

- Die ProjektArchivNummer ist für jedes Projekt einzig. Leider gibt es zwischendurch mal Projekte mit Buchstaben an einer Nummer hinten an. Es kann also Projekt 1234 und und 1234a und manchmal sogar noch 1234b und 1234c geben. Die wurden nachträglich eingefügt, warum auch immer, wurde halt früher so gemacht. Kann ich trotzdem ID und Projektarchivnummer zusammen als Primärschlüssel angeben um auszuschliessen, dass eine Projektarchivnummer zweimal vorkommt. Hätte dies zur Folge, dass ich zwingend eine projektarchivnummer angeben müsste?

- Die grosse Frage, lässt sich das alles ändern, und macht das überhaupt sinn?

Was meint Ihr dazu, Gruss Bernd
Dateianhänge
beziehungen.jpg
beziehungen.jpg (138.51 KiB) 3661 mal betrachtet

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

Re: Mehrere Primärschlüssel für eine Tabelle

Beitrag von RobertG » Do 14. Nov 2013, 21:28

Hallo Bernd,
wartburgritter hat geschrieben: - Da jedem Projekt genau ein Ort, Gebäudetyp, Bautyp, Projektstatus und Projektleiter zugeordnet ist, sind dass alles 1_zu_1 Beziegungen anstatt 1_zu_n.
1:1 nur dann, wenn z.B. auch jedem Ort nur ein Projekt zugeordnet werden kann usw. Deswegen nehme ich an, dass es sich doch um 1:n handelt. Ansonsten könntest Du den Ort direkt in das Projekt eintragen.
wartburgritter hat geschrieben: - Die Tabelle Projektfirmen wäre eigentlich besser mit rel_Projekt_Firma_Projektaufgabe bezeichnet.
- In der Tabelle Projektfirmen müssten alle 4 Spalten Primärschlüssel sein, oder besser alle drei und die Spalte ID könnte entfallen.
Die Bezeichnung ist ja eigentlich egal, aber der Rest dürfte passen - es sei denn eine Firma übernimmt bei einem Projekt nur eine Aufgabe.
wartburgritter hat geschrieben: - Die ProjektArchivNummer ist für jedes Projekt einzig. Leider gibt es zwischendurch mal Projekte mit Buchstaben an einer Nummer hinten an. Es kann also Projekt 1234 und und 1234a und manchmal sogar noch 1234b und 1234c geben. Die wurden nachträglich eingefügt, warum auch immer, wurde halt früher so gemacht. Kann ich trotzdem ID und Projektarchivnummer zusammen als Primärschlüssel angeben um auszuschliessen, dass eine Projektarchivnummer zweimal vorkommt. Hätte dies zur Folge, dass ich zwingend eine projektarchivnummer angeben müsste?
Du könntest eigentlich direkt die ProjektArchivNummer zum Primärschlüssel machen. Den anderen Schlüsselwert brauchst Du nicht, wenn die Projektarchivnummer einzigartig ist.
wartburgritter hat geschrieben: - Die grosse Frage, lässt sich das alles ändern, und macht das überhaupt sinn?
Das hängt davon ab, wie weit Du mit Formularen usw. bist. Vielleicht ist es für Dich einfacher, z.B. für die ProjektArchivNummer einen Index zu erstellen (Indexerstellung → S.56ff. im einseitigen Handbuch V41), der die Einzigartigkeit sichert. Genau das Gleiche kannst Du auch bei den Projektfirmen machen, damit die Firma nicht mit der gleichen Aufgabe im gleichen Projekt doppelt erscheint.
Bei den Beziehungen zwischen den Tabellen Ort und Projektliste usw. kannst Du vermutlich nichts ändern - es sei denn, die sind wirklich 1:1. Dann gehörte der Ort direkt in die Tabelle "Projektliste", genauso der Gebäudetyp usw. Sobald aber der Ort oder Gebäudetyp mehrmals in der Projektliste vorkommt ist das tatsächlich eine 1:n-Beziehung.

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

wartburgritter
Beiträge: 101
Registriert: Di 13. Nov 2012, 18:28

Re: Mehrere Primärschlüssel für eine Tabelle

Beitrag von wartburgritter » Do 14. Nov 2013, 22:56

RobertG hat geschrieben:
wartburgritter hat geschrieben: - Da jedem Projekt genau ein Ort, Gebäudetyp, Bautyp, Projektstatus und Projektleiter zugeordnet ist, sind dass alles 1_zu_1 Beziegungen anstatt 1_zu_n.
1:1 nur dann, wenn z.B. auch jedem Ort nur ein Projekt zugeordnet werden kann usw. Deswegen nehme ich an, dass es sich doch um 1:n handelt. Ansonsten könntest Du den Ort direkt in das Projekt eintragen.
Ahh, dann hatte ich das doch immer richtig verstanden und mich hat der obere Absatz aus Seite 48 verwirrt. Vor allem das mit der Klasse und den Schülern. Im Prinzip ist doch 1_zu_1 wie eineindeutig in der Mengenlehre.
RobertG hat geschrieben:
wartburgritter hat geschrieben: - Die Tabelle Projektfirmen wäre eigentlich besser mit rel_Projekt_Firma_Projektaufgabe bezeichnet.
- In der Tabelle Projektfirmen müssten alle 4 Spalten Primärschlüssel sein, oder besser alle drei und die Spalte ID könnte entfallen.
Die Bezeichnung ist ja eigentlich egal, aber der Rest dürfte passen - es sei denn eine Firma übernimmt bei einem Projekt nur eine Aufgabe.
Hier verstehe ich deine Antwort nicht. Die primärschlüssel in allen Tabellenspalten schliessen ja doppelvorkommen (in allen spalten stehe der gleiche eintrag, gleiche firma, gleiches projekt und gleiche aufgabe ) aus. Alles andere ist möglich (gleiches projekt, gleiche firma, andere aufgabe und gleiches projekt, andere firma, gleiche aufgabe und anders projekt, gleiche firma, gleiche aufgabe) usw. Es kann durchaus sein, dass eine Firma bei einem Projekt nur eine Aufgabe hat. Wieso schliessen die drei Primärschlüssel letzteres aus?
RobertG hat geschrieben:
wartburgritter hat geschrieben: - Die ProjektArchivNummer ist für jedes Projekt einzig. Leider gibt es zwischendurch mal Projekte mit Buchstaben an einer Nummer hinten an. Es kann also Projekt 1234 und und 1234a und manchmal sogar noch 1234b und 1234c geben. Die wurden nachträglich eingefügt, warum auch immer, wurde halt früher so gemacht. Kann ich trotzdem ID und Projektarchivnummer zusammen als Primärschlüssel angeben um auszuschliessen, dass eine Projektarchivnummer zweimal vorkommt. Hätte dies zur Folge, dass ich zwingend eine projektarchivnummer angeben müsste?
Du könntest eigentlich direkt die ProjektArchivNummer zum Primärschlüssel machen. Den anderen Schlüsselwert brauchst Du nicht, wenn die Projektarchivnummer einzigartig ist.
Gut. Das hatte ich mich nicht getraut, als ich die Datenbank vor Monaten erstellt habe. Ich dachte ich könnte Probleme bekommen wegen den Buchstaben.
RobertG hat geschrieben:
wartburgritter hat geschrieben: - Die grosse Frage, lässt sich das alles ändern, und macht das überhaupt sinn?
Das hängt davon ab, wie weit Du mit Formularen usw. bist. Vielleicht ist es für Dich einfacher, z.B. für die ProjektArchivNummer einen Index zu erstellen (Indexerstellung → S.56ff. im einseitigen Handbuch V41), der die Einzigartigkeit sichert. Genau das Gleiche kannst Du auch bei den Projektfirmen machen, damit die Firma nicht mit der gleichen Aufgabe im gleichen Projekt doppelt erscheint.
Bei den Beziehungen zwischen den Tabellen Ort und Projektliste usw. kannst Du vermutlich nichts ändern - es sei denn, die sind wirklich 1:1. Dann gehörte der Ort direkt in die Tabelle "Projektliste", genauso der Gebäudetyp usw. Sobald aber der Ort oder Gebäudetyp mehrmals in der Projektliste vorkommt ist das tatsächlich eine 1:n-Beziehung.
Vielen Dank für den Hinweis mit dem Index, ist doch genau das was ich brauche. Vor allem weil ich auch Projekte ohne Nummer habe. Die Projektnummer wird erst durch den Konstrukteur mit Beginn der Erstllung von Plänen vergeben (ist auch geschichtlich begründet). Ich trage aber die Projekte sofort in die DB ein, wenn ich weiss es gibt Unterlagen die ins Archiv kommen. Schwierig ist es dann immer, wenn ein Projekt gar keine Pläne hat, weil dann hat es auch keine Nummer. Hier kommen dann die a-Nummern zum Zug. Naja evtl. kann hier hoffentlich mal die Geschichte sein gelassen werden und die prjnr einfach grad mit DB-Eintrag vergeben werden. Das ist aber gar nicht so einfach zu vermitteln.

Naja für heut ist es zu spät, für Aenderungen an der DB. Beste Grüsse, Vielen Dank und einen guten Abend noch Bernd

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

Re: Mehrere Primärschlüssel für eine Tabelle

Beitrag von RobertG » Fr 15. Nov 2013, 07:51

Hallo Bernd
wartburgritter hat geschrieben:
RobertG hat geschrieben:
wartburgritter hat geschrieben: - Die Tabelle Projektfirmen wäre eigentlich besser mit rel_Projekt_Firma_Projektaufgabe bezeichnet.
- In der Tabelle Projektfirmen müssten alle 4 Spalten Primärschlüssel sein, oder besser alle drei und die Spalte ID könnte entfallen.
Die Bezeichnung ist ja eigentlich egal, aber der Rest dürfte passen - es sei denn eine Firma übernimmt bei einem Projekt nur eine Aufgabe.
Hier verstehe ich deine Antwort nicht. Die primärschlüssel in allen Tabellenspalten schliessen ja doppelvorkommen (in allen spalten stehe der gleiche eintrag, gleiche firma, gleiches projekt und gleiche aufgabe ) aus. Alles andere ist möglich (gleiches projekt, gleiche firma, andere aufgabe und gleiches projekt, andere firma, gleiche aufgabe und anders projekt, gleiche firma, gleiche aufgabe) usw. Es kann durchaus sein, dass eine Firma bei einem Projekt nur eine Aufgabe hat. Wieso schliessen die drei Primärschlüssel letzteres aus?
Die drei Primärschlüssel schließen das nicht aus, aber wenn grundsätzlich eine Firma nur eine Aufgabe übernehmen würde, dann würdest Du mit zwei Schlüsseln auskommen ...

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

wartburgritter
Beiträge: 101
Registriert: Di 13. Nov 2012, 18:28

Re: Mehrere Primärschlüssel für eine Tabelle

Beitrag von wartburgritter » Fr 15. Nov 2013, 12:39

RobertG hat geschrieben:Die drei Primärschlüssel schließen das nicht aus, aber wenn grundsätzlich eine Firma nur eine Aufgabe übernehmen würde, dann würdest Du mit zwei Schlüsseln auskommen ...
Gut, dann hab ichs doch richtig verstanden. :D Gruss Bernd und allen die hier mitlesen und schreiben ein schönes wochenende.


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