2017-08-14 5 views
0

Ich habe mehrere Rohstoffe, nach ihrer Teilenummern (einzigartig) in einer Tabelle (andere Felder enthalten Beschreibung, Einheiten, Menge, Datum gekauft usw.) Eine Baugruppe (in einer separaten Tabelle gespeichert) benötigt einige dieser Rohstoffe, um sie zu konstruieren. Diese Rohstoffe sind nicht für irgendeine bestimmte Baugruppe geeignet - es könnte mehrere verschiedene Baugruppen geben, die das gleiche Rohmaterial verwenden.MS Access Beziehungen und Verknüpfen von Daten

Ich habe darüber nachgedacht, eine separate Tabelle zu erstellen, in der ein Feld für die Baugruppe und ein Feld für Rohmaterial vorhanden ist - damit sie verknüpft werden können. Dies bedeutet jedoch, dass für eine Baugruppe, die beispielsweise drei Rohmaterialien enthält, drei Datensätze erstellt werden, wobei das Feld "Assembly" wiederholt wird (nicht ideal, da dies zu einer sehr großen Datenbank führen würde).

Mein begrenztes Verständnis von Beziehungen sagt mir, dass es nicht möglich ist, diese ohne einen gemeinsamen Primärschlüssel zu verknüpfen, und selbst wenn es einen gab, kann ich nicht sehen, wie ich mehrere Rohstoffe zu einer Baugruppe verknüpfen würde. Angesichts der Tatsache, dass Benutzer im Laufe der Zeit neue Rohmaterialien und neue Assemblys zu den beiden Tabellen hinzufügen würden, führt dies zu einer Komplexität, die ich mit meinem begrenzten Verständnis von MS Access nicht genau erreichen kann.

Vielleicht gibt es eine bessere Möglichkeit zum Speichern der Daten oder vielleicht SQL in MS Access kann dies erreichen? Aber ich bin mit SQL noch ratloser als Access.

Jede Hilfe und Beratung wird sehr geschätzt.

+0

Suchen Sie einige Lernprogramme in "Beginnend mit Microsoft Access", "Einführung in SQL" und ähnlich. Es gibt viel zu finden für das Surfen. – Gustav

Antwort

1

Dies ist sehr möglich, und etwas, das schon viele Male zuvor getan wurde.

Tisch Ihre Rohstoffe Stellen Sie sich vor wie folgt aussieht etwas:

+---+--------+ 
| 1 | Metal | 
+---+--------+ 
| 2 | Wood | 
+---+--------+ 
| 3 | Rubber | 
+---+--------+ 

Und Ihre Baugruppen in etwa so aussehen:

+---+-------+ 
| 1 | Bike | 
+---+-------+ 
| 2 | Table | 
+---+-------+ 

Dann eine viele-zu-viele-Beziehung zu erstellen, benötigen Sie eine dritte Tabelle, die die beiden (Spalten AssemblyID, MaterialID) kombiniert:

+---+---+ 
| 1 | 1 | 
+---+---+ 
| 1 | 3 | 
+---+---+ 
| 2 | 2 | 
+---+---+ 

Wie Sie sehen können, benötigt das Fahrrad Gummi und Metall, und der Tisch benötigt nur Holz.

Es gibt viele detailliertere Anleitungen zu vielen Beziehungen in Access. Aber das Kernkonzept ist, dass Sie eine zusätzliche Tabelle benötigen, um die beiden miteinander zu verbinden.

+0

Wäre es möglich, zu verknüpfen, ohne dass für jedes Rohmaterial, das für die Montage benötigt wird, ein neuer Datensatz erstellt werden muss? Bei mehreren komplexen Baugruppen (einige mit mehr als 20 Rohmaterialien) würde dies mehr als 20 Datensätze für eine Baugruppe bedeuten, was sehr schnell zu einer sehr großen Datenbank führen würde. Es ist wahrscheinlich, dass es Probleme mit der Indizierung/Geschwindigkeit geben würde? –

+0

Es ist möglich, aber nicht zu empfehlen. Die Datensätze pro Rohmaterial sind wirklich, wirklich klein (nur 2 Zahlen oder 3, wenn Sie einen Primärschlüssel hinzufügen möchten, aber Sie könnten einen eindeutigen zusammengesetzten Index beider Spalten verwenden, der die Notwendigkeit eines anderen Identifikators beseitigt). Das bedeutet, Größe und Indizes sind wirklich kein Problem. Wie in der Frage gesagt, ist es auch eine sehr verbreitete Technik, daher sind Datenbanken dafür optimiert. –