Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Baumstruktur Datenbank als Anfänger möglich?

Begonnen von chris22, März 28, 2016, 20:03:54

⏪ vorheriges - nächstes ⏩

chris22

Hallo,

ich schreibe im Moment meine Bachelorarbeit und würde gerne eine kleine Datenbank bauen. Dafür hätte ich gern euere Einschätzung wissen und ob ich mir da nicht zu viel zu mute?

Hab Grundkenntnisse in Access allerdings wenns ums Programmieren geht da hab ich einfach viel zu wenig Ahnung...

Die Datenbank sollte ein Auto und bestimmte Bestandteile dessen erfassen. Exemplarisch mal der Aufbau wie er funktionieren sollte...


Karosserie
       Türen
              Stahltüren
                     Kermes Stahltür X2324
                     Hella Stahltür DE3233
              Blechtüren
              ...
       Fenster
       ...

Fahrwerk

Innenausstattung

...

Dabei wäre dann z.B. Kermes Stahltür X2324 eine Tabelle die verschiedene Eigenschaften z.B. Preis, Farbe, etc.. enthält. Analog bei allen "Endprodukten" dann, wäre also erst mal immer der gleiche Aufbau... Von daher hatte ich schon überlegt ob ich vielleicht mit einer Musterdatenbank die ich etwas anpasse arbeiten könnte?
Sag mir bitte was ihr davon haltet, weiß im Moment nicht ob ich das hinbekomme...

Vielen Dank schon mal!





Hondo

Hallo,
es handelt sich hier um eine Stückliste, mit Baugruppen und Einzelteile.
Man benötigt eine Tabelle für die Bauteile (Baugruppen die nicht auf Bauteileebene aufgelöst werden werden wie Bauteile behandelt), und eine Tabelle zum Aufbau der Stückliste BOM (Bill of Material) mit den Feldern ID, Bezeichnung, BauteilID, VaterID, Menge

Ein Einfachbeispiel:
Bauteile:
1, Kermes Stahltür X2324
2, Hella Stahltür DE3233

BoM:
1, Stahltüren, 1, 3, 1
2, Stahltüren, 2, 3, 1
3, Türen, 0, 4, 1
4, Karosserie, 0,5
5, Auto, 0, 0

Gruß Andreas

chris22

Hallo Andreas,

danke für die schnelle Antwort. Das hilft mir schon mal weiter. Ich verstehe allerdings noch nicht wie man den einzelnen Bauteilen dann Eigenschaften zuweisen kann, mit einer weiteren Tabelle? Bei der BoM versteh ich die Systematik der Zahlen allerdings nicht wie diese dann in Access "eingebaut" werden, ich denke mit der VaterID?


Grüße, Chris

Hondo

Ne eigentlich genau so wie geschrieben. Jedes Komma Trennt 1 Feld.
Etwas anderes ist es aus der Tabelle eine Stückliste aufzulösen.

Aber dazu gibt es im Netz schon einige Beispiele, z.B. in der KnowHow DB 3.0
http://www.freeaccess.de/knowhow.asp
Dort findest du ein komplettes Beispiel das auch die Stücklisten-Ansicht im Bericht anzeigt.

Andreas

chris22

Besten Dank! Ich schau heut mal wie ich durch komme mit den Beispielen.

Grüße, Chris

chris22

Gibt's ne Möglichkeit das ich die KnowHow DB 3.0 unter Access 2013 verwenden kann?

Hondo

Hallo,
also unter 2010 funktioniert sie.
Aber ich kann dir das Beispiel daraus extrahieren und als AccDB schicken. Schick mir grad mal eine Email an av.offenburg@gmx.de

Andreas

chris22

Hallo,

irgendwo hapert's bei mir mit dem Verständnis... mir fehlt irgendwo ein Zusammenhang...

ich beschreib einfach mal meine Sicht vielleicht sieht jemand den Denkfehler. Also bei einem normalen Datenbankmodell werden verschieden Tabellen erstellt und diese über entsprechende Verknüpfungen miteinander verbunden. Dadurch kann bei der Formular, Abfrage, Bericht auf ein großes ganzes an zusammenhängenden (logisch verknüpften) Daten zugegriffen werden.

Doch wie funktioniert das bei einer Stückliste. Ich versteh nicht wie die Daten untereinander verknüpft sind...  ?

Angenommen ich lege das Beispiel von Andreas an:

So hätte ich ein Tabelle

Bauteile

ID         Bezeichnung

1           Kermes Stahltür X2324
2           Hella Stahltür DE3233

und eine weitere Tabelle

BoM

mit:

Feld ID - mit Autowert
Bezeichnung - Bauteilbezeichnung
Bauteil ID - ID aus der Tabelle Bauteile
Vater ID -

Das verstehe ich so das man der jeweiligen Feld ID jeweils die übergeordnete Feld ID als Vater ID zuweist.
z.B.

Bezeichung    Feld ID        Vater ID 

Auto                 1                   0
Karosserie         2                   1
Tür                   3                   2
Stahltür x2        4                   3
Stahltür c4        5                   3
Fenster             6                   3


Wofür brauche die Menge? Bzw. kann ich auch einfach weglassen?

Gibt es in einer Stückliste keine Beziehungen bzw. wo stellt Access die Verbindungen her?

Könnte mir vielleicht jemand die grundlegende Funktionsweiße / Aufbau / etc. für Stücklisten erklären?



chris22

könnte ich das nicht mit einem Datenbankmodell das so mit entsprechenden Verknüpfungen funktioniert lösen?

DF6GL

Hallo,

das Problem, das Du vermutlich hast, ist die Stücklisten-Auflösung für ein bestimmtes Teil (Baugruppe) ....


Die Tabelle selber ist  die Roh-Stückliste, die die Zuordnung aller Teile zu jeweils ihrem nächst höheren Level (die Baugruppe, in der das oder die Teile auftauchen) definiert.


Wozu brauchst Du eine "Menge"... ??

Die Frage kannst Du Dir aber selber beantworten...    Oder gibt es überhaupt irgendwelche Baugruppen/Produkte, in denen nicht mindestens ein Bauteil mehrmals  auftaucht? 

Warte mal auf die Knowhowdb...

PS zum letzten Beitrag:  Nein, wenn das Ganze funktionieren soll...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Hondo

Hallo,
hast du die Beispiel-DB erhalten?
Die Menge brauchst du weil in einer Baugruppe mehrere gleiche Bauteile enthalten sein können.
z.B. Schrauben, Anzahl Leitungen in m, 2 Bremsgummis bei einer Felgenbremse, 4 Tischbeine bei 1 Tisch etc.

D.H. eine Baugruppe kann aus mehreren verschiedenen Bauteilen/Baugruppen bestehen, aber auch aus mehreren gleichen Bauteilen/Baugruppen.

Aber sieh dir das Beispiel wo ich dir geschickt habe an.
Das ist wirklich sehr gut und ich denke du brauchst nur noch deine Daten eintragen und fertig.

Andreas

Hondo

Hallo nochmal,
die Menge ist vorallem wichtig für die Bestellung der Einzelteile/Baugruppen und für die Kalkulation des Endproduktes.
Dein Chef fragt dich für das Produkt XY wie oft das Bauteil F22 benötigt wird um ein Los von 100 Stück zu produzieren.
Ohne Mengenangaben stehst du dann ziemlich blöde da.  ;)

Gruß Andreas

chris22

hallo,

besten Dank für die Beispiel-DB, hab ich erhalten. Ich versteh nur nicht ganz wie Stückliste, Artikel und Stückliste Auflösung zusammen hängen? Und darum auch nicht was in den einzelnen Positionen z.B. bei Stückliste (idArtikelNrInt, idLfdNr, dtAnzahl, fiArtikelNrInt) der Tabelle einzutragen ist...

Vielleicht könntet ihr mir da noch helfen

Und ich bin nicht ganz sicher ob die Stückliste denn wirklich richtig für das ist was ich machen möchte. Meine Wunschvorstellung wär es das  alle Daten hierarchisch (liegen in Baumstruktur vor) erfasst werden und dann über Abfagen z.B. Abfrage: Türen  ich über verschiedene Filter z.B. einstellen kann Farbe, Gewicht und dann zu einer entsprechenden Tür gelange.

Der Baum wäre dann so bzw. ein Pfad davon

Auto --> Karosserie --> Türe --> Türe mit Fenster --> dann würde eine Tabelle kommen die alle Türen mit Fenstern enthält und denen dann z.B. Tür mit Fenster 1 hat dann wiederum verschiedene Eigenschaften z.B. Farbe, etc...


DF6GL

Hallo,

das, was Du Dir hier vorstellst, ist die Visualisierung der Stückliste z. B. mit einem Treeview-Steuerelement. Das ist aber alles andere als einfach (zumindest anfänglich)....

Stücklisten(auflösungen)-Darstellung  kann man auch mit Hilfe von gruppierten Berichten erreichen.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Hondo

Hallo,
ein Mini-Beispiel Auto:
Tabelle tkeyArtikel:
ZitatidArtikelNrInt   dtArtikelNrExt   dtArtikelBez   dtProduktArt
200   F200   Auto   E
2001   T1   Karosserie   B
2002   T11   Blechteile   B
2003   T12   Interieur   B
2004   T101   Türe vorne links   B
2005   T102   Türe vorne rechts   B
2006   T103   Kotflügel vorne links   B
2007   T104   Türverkleidung links   B
2008   T105   Konsole mitte   B
2009   T106   Armaturenbrett   B

Tabelle tdtaStückliste:
ZitatidArtikelNrInt   idLfdNr   dtAnzahl   fiArtikelNrInt
200   1   1   2001
2001   1   1   2002
2001   2   1   2003
2002   1   1   2004
2002   2   1   2005
2002   3   1   2006
2003   1   2   2007
2003   2   1   2008
2003   3   1   2009

Gib mal die Daten ein und schau dir dann das Formular an.
Die Tabellenfelder sollten eigentlich selbsterklärend sein.
Für dich etwas übersetzt:
Artikel: ID, ArtikelNummer, Bezeichnung, Art
Stückliste: ArtikelID, LfdNr, Anzahl, Nachfolger_ArtikelID

D.h., es wird nicht der Vater sondern die Kind-Beziehung in der Tabelle definiert. lfDNr für die Reihenfolge der Ausgabe.

Gruß Andreas