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
🙏 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!🍀
>> 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
-
- Beiträge: 101
- Registriert: Di 13. Nov 2012, 18:28
Mehrere Primärschlüssel für eine Tabelle
- Dateianhänge
-
- beziehungen.jpg (138.51 KiB) 3662 mal betrachtet
Re: Mehrere Primärschlüssel für eine Tabelle
Hallo Bernd,
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
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: - 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 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 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.
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 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?
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.wartburgritter hat geschrieben: - Die grosse Frage, lässt sich das alles ändern, und macht das überhaupt sinn?
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- Beiträge: 101
- Registriert: Di 13. Nov 2012, 18:28
Re: Mehrere Primärschlüssel für eine Tabelle
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: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: - 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.
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: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 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.
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: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 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?
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.RobertG hat geschrieben: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.wartburgritter hat geschrieben: - Die grosse Frage, lässt sich das alles ändern, und macht das überhaupt sinn?
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.
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
Re: Mehrere Primärschlüssel für eine Tabelle
Hallo Bernd
Gruß
Robert
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 ...wartburgritter hat geschrieben: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: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 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.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- Beiträge: 101
- Registriert: Di 13. Nov 2012, 18:28
Re: Mehrere Primärschlüssel für eine Tabelle
Gut, dann hab ichs doch richtig verstanden.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 ...

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.