Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Aufbau der Access-Tabellen so in Ordnung?





Frage

Hallo! Ich bau zur Zeit an ner Access Datenbank rum uns bin so langsam aber sicher am Verzweifeln. Jetzt würde ich erstmal gerne eure Meinung hören, ob der grundsätzliche Aufbau der Tabellen in meiner Datenbank in Ordnung ist. Ich bin zwar nicht sicher, ob das hier reingehört aber ich hoffe, ihr könnt mir trotzdem helfen :) 1.Tabelle: Fahrzeuge, Schlüsselfeld ist FhrzgID 2.Tabelle: Bauteile, Schlüsselfeld ist BaugrpID 3.Tabelle: Zuordnungstabelle - da die Beziehung zwischen der 1. und der 2. Tabelle n:m ist, besteht die 3.Tabelle nur aus den Feldern FhrzgID und BaugrpID löst diese Beziehung auf. Ich denke mal, das passt soweit. Jetzt kommt aber mein Problem: Es gibt verschiedene Bauteile, die auch alle unterschiedliche Felder haben. Also z.B. Bauteil1 hat "Länge" und "Breite" während Bauteil2 "Durchmesser" und "Höhe" hat. Ich habs jetzt so gelöst, dass ich 5 zusätzliche Tabellen habe (für die Bauteile 1-5), in der die Bauteile mit ihren Werten stehen. In der Tabelle "Bauteile" habe ich nur Daten, die alle Bauteile hergeben (z.B. Hersteller), in die 5 zusätzlichen Tabellen gebe ich Daten ein, die bauteilspezifisch ("Höhe","Durchmesser" oder "Länge","Breite") sind. Diese Tabellen werden über den Fremdschlüssel "BaugrpID" mit der Tabelle "Bauteile" verknüpft. Ohje.. klingt ziemlich kompliziert.. ich hoffe, das war verständlich? Jetzt die Frage: Ist das sinnvoll so oder sollte ich lieber ein große Tabelle "Bauteile" nehmen, in der alle Bauteile mit ihren Daten aufgeführt werden und in der dann immer wieder leere Felder sind, weil die für das aktuelle Bauteil nicht benötigt werden. Bzw. was ist für die weitere Bearbeitung einfacher - es werden noch Abfragen, Formulare und Berichte drauf aufgebaut.. Vielen Dank schon mal für eure Antworten! Gruß, maya

Antwort 1 von Teddy7

Hi maya !

Im Prinzip geht beides. Aber weil man ja irgendwann die Daten auch wieder in einem Bericht zusammenfassen will ist es sicher einfacher, wenn man alle Bauteil-Daten in einer Tabelle hat. Dann wird die Verknüpfung in der Abfrage übersichtlicher.

Ein Gegenargument könnte sein, dass man die Datenbank aufbläht. Das zählt aber nur, wenn man an die 1GB-Grenze kommt.

Gruß
Teddy

Antwort 2 von RalfH

Guten Morgen,
Zitat:
3.Tabelle: Zuordnungstabelle - da die Beziehung zwischen der 1. und der 2. Tabelle n:m ist, besteht die 3.Tabelle nur aus den Feldern
FhrzgID und BaugrpID löst diese Beziehung auf.
Ich denke mal, das passt soweit.

Kann ein Fahrzeug nicht unendlich viele Bauteile haben, und nicht nur eins ?
Ein Traktor hat zum Beispiel Bremsen, Lenkung und einen Motor ( es gibt auch welche mit 2 Motoren 1* Diesel und 1* Holzvergasung), der wiederum besteht aus x Anbauteilen (Dieselpumpe), die wiederum aus x Teilen bestehen(Ansaugstutzen,Membrane,usw.).

Zitat:
.Jetzt kommt aber mein Problem: Es gibt verschiedene Bauteile, die auch alle unterschiedliche Felder haben. Also z.B. Bauteil1 hat "Länge" und "Breite" während Bauteil2 "Durchmesser" und "Höhe" hat. Ich habs jetzt so gelöst, dass ich 5 zusätzliche Tabellen habe (für die Bauteile 1-5), in der die Bauteile mit ihren Werten stehen.
.


Du könntest zum Beispiel eine Tabelle Maßeinheiten erstellen, auf die du dich beziehen kannst, damit kannst du auf die zusätzlichen Tabellen verzichten und wärst flexibler in der Eingabe.
Tabelle Maßeinheiten:
id Benennung
1 Länge mm
2 Höhe mm
3 Breite mm
4 Durchmesser mm
5 Radius
usw.



Gruß Ralf

Antwort 3 von maya2k

Hallo ihr zwei!
Vielen Dank für die Antworten.

Zitat:
Kann ein Fahrzeug nicht unendlich viele Bauteile haben, und nicht nur eins ?


Das stimmt, aber deswegen habe ich ja die Zuordnungstabelle eingebaut, die eben jedem Fahrzeug seine Bauteile zuordnet. Also da steht dann z.B.

FhrzgID BaugrpID
1 Bauteil1
1 Bauteil2
2 Bauteil1

Bei mir gehts zum Glück nicht so weit ins Detail, dass jedes Bauteil dann selbst wieder aus verschiedenen Bauteilen besteht.
Ich hab ein Fahrzeug, das besteht aus verschiedenen Bauteilen und ein Bauteil kann auch in verschiedenen Fahrzeugen verbaut sein. In der Bauteil-Tabelle sind dann die Merkmale der Bauteile gespeichert. Ich hab so ne Zuordnungstabelle das erste Mal gemacht aber bis jetzt funktioniert das ganz gut.. ich hoff, des bleibt so :)


Zitat:
Ein Gegenargument könnte sein, dass man die Datenbank aufbläht. Das zählt aber nur, wenn man an die 1GB-Grenze kommt.


Die Größe ist momentan noch die Frage, da kann ich erst in nächster Zeit sicher sagen wie das später aussehen wird. Wären viele leere Textfelder denn ein Problem? Bei den OLE-Feldern für Bilder werd ichs so machen, dass 1.die Bilder verknüpft werden und 2.die Felder für jedes Bauteil benutzt werden. Das wär doch sinnvoll um die Größe klein zu halten, oder?

Auf jeden Fall vielen Dank für eure Antworten!
Gruß, maya

Antwort 4 von Teddy7

Hi maya !

Man sagt grundsätzlich, dass man bei einer Datenbankgröße ab 1 GB mit Access Probleme bekommt. Sei es Antwortzeit, oder Fehler "Speicher zu klein", o.ä.
Das ist z.T rechnerabhängig, aber als Faustregel durchaus brauchbar.
Bilder solltest Du möglich nicht verknüpfen(OLE) sondern nur den Pfad zum Bild speichern. siehe dazu hier http://www.donkarl.com/ in der FAQ Punkt 2.2.

Leere Felder an sich stören überhaupt nicht. Wenn Du diese Felder später verarbeiten mußt kannst Du mit nz(Feldname,"") die NULL-Werte in Leer umwandeln wo Du´s brauchst.

Gruß
Teddy

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: