Neuigkeiten:

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

Mobiles Hauptmenü

Datenbankstruktur Produkt-/Zubehör-/Ersatzteillisten

Begonnen von malibum, November 16, 2016, 16:04:19

⏪ vorheriges - nächstes ⏩

malibum

Hallo zusammen,

und zwar möchte ich eine Datenbank erstellen, bei der es

- eine Produktliste
- eine Zubehörliste
- eine Ersatzteilliste

gibt. Jedes Teil in jeder Liste hat eine eindeutige ID. Gebe ich in ein Suchfeld die ID ein soll das dementsprechende Produkt angezeigt werden, steckt nun hinter der ID ein Ersatzteil, soll zusätzlich das Produkt angezeigt werden zudem das Ersatzteil gehört. Nun weis ich nicht so richtig wie ich dies in der Struktur aufbauen soll, also die Beziehungen der Tabellen zueinander. Meine Idee war für jede Liste jeweils eine Tabelle in Excel anzulegen und diese dann mit Access zu verknüpfen. Jedoch muss ich ja irgendwie definieren, dass zbsp. diese 10 Ersatzteile zu diesem einen Produkt gehören, damit bei jedem dieser 10 Ersatzteile jeweils das gleiche Produkt angezeigt wird.

Über Hilfe und Denkanstöße wäre ich sehr erfreut  :)

Lg
Malibum

DF6GL

Hallo,


das hört sich stark nach "Stückliste" an..


Fragen:

Kann ein Ersatzteil auch ein Produkt sein?
Dito für Zubehör:  Kann ein Zubehör auch ein Produkt sein?
Kann es auch Ersatzteile für ein Zubehör geben?


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

MzKlMu

Hallo,
ZitatMeine Idee war für jede Liste jeweils eine Tabelle in Excel anzulegen und diese dann mit Access zu verknüpfen.
Wieso in Excel, was versprichst Du Dir davon ? Und eine Datenbanktabelle erfordert eine andere Struktur als eine Exceltabelle.
Abgesehen davon, können verknüpfte Exceltabellen nur angesehen werden, da gibt es keine Schreibrechte.

Nachfolgendes bezieht sich daher ausschließlich auf die Anwendung von Accesstabellen und nicht für verknüpfte Exceltabellen.
Da ich davon ausgehe, dass gleiche Zubehör und Ersatzteile an verschiedenen Produkten möglich sind, liegt hier eine n:m Beziehung vor.
Zunächst würde ich Ersatzteile und Zubehörteile in eine Tabelle packen, mit einem Kennzeichen ob Ersatzteil oder Zubehör.
Dann benötigst Du eine Tabelle für die Produkte.
Dann kommt die Zuordnungstabelle die den Fremdschlüssel des Produkts und den Fremdschlüssel des Zub_Ersatzteiles aufnimmt. In je einem Datensatz.
Hat ein Produkt 10 Ersatzteile und 5 Zubehörteile so sind in dieser Tabelle 15 Datensätze. Darstellung und Zuordnung in einem Unterformular das in eine Hauptformular eingebettet ist. Hafo und Ufo sind über die Schlüsselfelder zu verknüpfen.

Nachtrag:
Wenn die Vermutungen von Franz zutreffen geht mein Vorschlag nicht, da wird es etwas komplizierter.
Gruß Klaus

malibum

Hallo,

vielen Dank für solch fixe Antworten!  :)

ZitatKann ein Ersatzteil auch ein Produkt sein?
Dito für Zubehör:  Kann ein Zubehör auch ein Produkt sein?
Kann es auch Ersatzteile für ein Zubehör geben?

- ein Ersatzteil kann kein Produkt sein
- ein Zubehör kann kein Produkt sein
- Zu einem Produkt gehören diverse Ersatz und Zubehörteile

Also ein Produkt besteht aus einem Basiselement, dieses Basisprodukt kann durch spezifische Elemente erweitert werden (dadurch entstehen neue Produktvarianten, die Anzahl der Varianten ist aber schon festgelegt) für jede Variante gibt es ein spezifisches Ersatzteile Paket welches aus den Spezifischen Ersatazteilen + den Ersatzteilen des Basisproduktes besteht. Das Zubehör hingegen passt auf jedes Produkt/Produktvariante.

ZitatWieso in Excel, was versprichst Du Dir davon ?

Nun der Hintergrundgedanke mit der Verwendung von Excel-Tabellen hat folgenden Grund. Die DB soll (wenn sie denn fertig ist  ;) ) in einem Netzwerk aus Computern für jeden verfügbar sein. Jetzt habe ich gedacht jeder installiert seine DB auf seinem eigenen PC, die Exceltabellen werden auf einem zentralen Laufwerk abgelegt, sodass wenn jemand die Daten in der Excel-Tabelle über seine DB ändert, jeder andere Nutzer der DB auch sofort auf die aktuellen Daten Zugriff hat.
Ich denke, dass wenn die Tabellen in Access abgespeichert sind, wird bei einer Änderung nur eine Änderung in der DB auf dem jeweiligen PC vorgenommen. Oooooder kann ich die zentrale Änderung auch erreichen, wenn ich meine Backend Datei zentral abspeichere, meine Frontend Datei hingegen hat jeder auf seinem PC.

Also diese Struktur die möchte lässt sich also nicht mit Excel-Tabellen realisieren, da ich keine Varianten an verschiedenen Beziehungsarten habe oder?

Ufffff ich weis ist ein ganz schöner Brocken  :D

Lg
Malibum

MzKlMu

Hallo,
Excel scheidet aus, Excel ist nicht mehrbenutzerfähig. Außerdem sind Exceltabellen von der Struktur her völlig ungeeignet als Datenbanktabelle.
ZitatOooooder kann ich die zentrale Änderung auch erreichen, wenn ich meine Backend Datei zentral abspeichere, meine Frontend Datei hingegen hat jeder auf seinem PC.
Genau so wird das mit Access gemacht. Das Backend sind die reinen Datentabellen die in die Frontends eingebunden werden. Jeder User hat dann sein eigenes Frontend auf seinem PC.
Zitatdieses Basisprodukt kann durch spezifische Elemente erweitert werden (dadurch entstehen neue Produktvarianten, die Anzahl der Varianten ist aber schon festgelegt)
Das ist jetzt wieder neu, was sind das für Elemente ?
Es müsste dann ja auch eine Tabelle und eine Zuordnung geben welches Element zum Produkt gehört und so die Variante bildet.
Zitatfür jede Variante gibt es ein spezifisches Ersatzteile Paket
Ist ein solches Paket für jede Variante immer gleich oder wird das Paket für jede Variante individuell zusammengestellt ?
Gleiche Frage auch für die Ersatzteile des Basisprodukts.
So wie ich das sehe, kommen da eine ganze Reihe von Tabellen zusammen.


Gruß Klaus

crystal

Lieber Malibum,

es fällt schon etwas schwer, auf deine Frage(n) zu antworten, denn dir fehlen offensichtlich einige Grundlagen.

ZitatJetzt habe ich gedacht jeder installiert seine DB auf seinem eigenen PC, die Exceltabellen werden auf einem zentralen Laufwerk abgelegt, sodass wenn jemand die Daten in der Excel-Tabelle über seine DB ändert, jeder andere Nutzer der DB auch sofort auf die aktuellen Daten Zugriff hat.

Dieser Gedanke ist für sich genommen ja nicht falsch, aber eine Multi-User-Datenbank leistet das natürlich auch und besser.

Eine Trennung von Daten und Funktionälität (Backend und Frontend) leistet ja genau das. Alle Benutzer greifen auf EINEN gemeinsamen Datenbestand zu, wobei es allerdings nicht ganz einfach ist, Änderungen an Daten "sofort" anderen zur Verfügung zu stellen.

Stelle dir vor, jemand bearbeitet gerade ein Produkt. Solange er dies tut, ist das Produkt vor Änderungen duch andere Leute geschützt und die Poduktdaten können allenfalls gelesen werden (und zwar diejenigen zum Zeitpunkt bevor der erste Benutzer den geänderten Produkt-Datensatz abspeichert).

Stelle dir weiter vor, einer hätte begonnen, etwas am Produkt-Datensatz zu ändern und 5 andere würden das Produkt auch aufrufen, um etwas zu ändern. Wenn der erste mit seiner Änderung fertig ist, muss den anderen 5 mitgeteilt werden, dass sich etwas geändert hat und schon gespeichert wurde. Sie müssten also die Produkt-Daten erstmal neu laden, um weitermachen zu können. Und das gilt für alle 5.

Um diese Situation der Blockierten (gelockten) Datensätze etwas zu entschärfen, kann man das Recht, Produktdaten zu ändern, nur bestimmten Personen geben, so dass die Wahrscheinlichkeit, dass 2 oder mehrere Personen Änderungen gleichzeitig machen wollen, schon etwas geringer wird.

Dieses Problem ändert sich natürlich NICHT, wenn die Produkt-Daten z.B. als externe Excel-Datei gespeichert wären, im Gegenteil: dann wäre es ja noch schwieriger, Änderungen den anderen mitzuteilen (man müsste ja permanent prüfen, ob sich die Excel-Datei geändert hat).

Wie du siehst, musst du dich vielleicht zunächst mit Grundlagen von Datenbank-Anwendungen im Mehr-Benutzer-Betrieb beschäftigen... Auch wenn du alles ohne Access und nur mit Excel-Dateien machen würdest, denn normalerweise wird eine Excel-Datei für andere gesperrt, sobald jemand sie zum Bearbeiten geöffnet hat.

Etwas einfacher ist die Situation, wenn mehrere Leute nur lesend auf ein Produkt zugreifen, z.B. um neue Aufträge anzulegen, denn dadurch ändert sich ja nichts an den Produkt-Daten. Bloßes Lesen ist also immer möglich; schwierig wird's nur, wenn das Produkt gerade von einem Mitarbeiter für Änderungn aufgerufen wurde und er dann in die Mittagspause geht. Dann können andere nur die noch nicht geänderten Produkt-Daten lesen.

Gleichviel: Access bietet natürlich Möglichkeiten, solche "Gesperrt-Situationen" zu erkennen und passend darauf zu reagieren.

In deinem Fall gehe ich sowieso eher davon aus, dass Produkte, Ersatz- und Zubehörteile von einer bestimmten Person bearbeitet/gepflegt werden und die anderen nur lesend darauf zugreifen, wodurch sich die Situation etwas entschärft. Es kann dann nur passieren, dass sich ein Mitarbeiter wundert, wieso z.B. als Versions-Nummer plötzlich 5.3 dasteht, obwohl es vor der Pause bestimmt ("ich schwöre") noch 5.2 gewesen ist. Sowas muss man dann durch "letzte Änderung am ... um ... Uhr von ..." erklären.

All dies soll nur dazu dienen, dich auf ein paar Probleme hinzuweisen, die es geben kann, wenn man eine zentrale Datenbank plant.

Ansonsten würde ich mich zunächst auf das Datenmodell konzentrieren und dazu haben andere ja bereits gepostet.

lg
crystal
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

malibum

Hallo,

ja das ganze ist ein umfangreiches Projekt und es stimmt dass ich nicht gerade viel Erfahrung vorweisen kann, daher war es mir auch ganz wichtig solche Grundlagen von euch erfahrenen Benutzern zu bekommen was zbsp. die Speicherung und Mehrbenutzerverwendung betrifft. Da ich natürlich nicht möchte, dass es am Ende aufgrund dessen zu schwerwiegenden Problemen in der Benutzung kommt. Daher vielen Dank Crystal für deine Informationen und Denkanstöße über die ich jetzt auch erstmal recherchieren werde.

Genauso wichtig ist natürlich auch das ausgiebige Durchdenken der Datenbankstruktur weshalb ich auch ursprünglich diesen Thread eröffnet habe  ;)

MzKIMu ich Danke auch dir für die Mühe dich in mein Vorhaben einzudenken  :)

ZitatEs müsste dann ja auch eine Tabelle und eine Zuordnung geben welches Element zum Produkt gehört und so die Variante bildet

Genau so ist dies auch gedacht.

ZitatIst ein solches Paket für jede Variante immer gleich oder wird das Paket für jede Variante individuell zusammengestellt ?
Gleiche Frage auch für die Ersatzteile des Basisprodukts.

Jedes Paket ist für jede Variante gleich, ebenso sind die Ersatzteile für jedes Basisprodukt gleich.

Lg
Malibum