0

Unsere Firma fertigt Schuhe und ich habe eine Aufgabe, eine FE & dafür zu machen. Ich entschied mich, die FE in MS Access für jetzt zu machen (wird wahrscheinlich in 1-2 Jahren zur Django Web App wechseln, sobald ich vertrauter werde & mit ihm) und BE ist in MySQL für jetzt.Datenbank (BE) Design für die Fertigung mit Baugruppen und Produkthierarchie

Grundsätzlich kann unser Kunde ein Produkt bestellen, sagen "shoeA" x 1080 in einzelnen Boxen (jedes Paar hat eine Box) und 24 solcher Boxen in einem Karton. Daraus ergibt sich die Struktur für Stücklisten (oder Baugruppen ... nicht sicher, ob hier der Terminologie) würde wie folgt aussehen:

Order1 
    - Carton (size 24) x 45 
     - Box (1 pair) x 24  -- (45 * 24 = 1080) 
      - Packing paper x 1 
      - shoeA x 1 
    ... 

Aber wenn wir schauen, was shoeA besteht, ist es mehr Co-Produkte und Rohstoffe. Darüber hinaus kann jeder Gegenstand von einem anderen Ort (z. B. Lagerhaus) kommen und kann durch unterschiedliche Montage zusammengebaut werden (z. B. würde Schuh A nicht mit der gleichen Anordnung zusammengebaut werden wie die Verpackung). Das Problem ist, dass mehrere Baugruppen die gleiche Art von Arbeit verrichten (zB mehrere Baugruppen) und wir nicht wissen, welche Baugruppe was zum Zeitpunkt tun wird (zB Bestellung kann 6 Monate im Voraus und wir kommen wird wissen, welche Versammlung was 2 Monate im Voraus tun wird).

Um die Sache weiter zu komplizieren, können 2 Baugruppen desselben "Typs" (z. B. Verpackungsbaugruppen) unterschiedliche Materialien erfordern, obwohl sie das gleiche Ergebnis liefern. Zum Beispiel braucht unsere Montage in der Türkei nur den Schuh von uns, sie liefern den Rest der Materialien/Nebenprodukte selbst (dh Schachteln/Verpackungspapier usw.). Natürlich wird sich das im Preis widerspiegeln, aber das ist im Moment nicht das Problem. Der Punkt ist, dass beide diese Baugruppen gleichen Produkt am Ende produzieren (dh. Box mit einem Schuh und Papier drin).

Wie würde man dies in Back-End-RDBMS widerspiegeln? Zur Zeit habe ich:

EER Schema

ignorieren Sie bitte die Attribute selbst (außer PK/FK), da sie nur Platzhalter sind, bis ich die Dinge fertig zu bekommen.

Antwort

1

Ich denke, das große Problem, auf das Sie stoßen werden, ist die Möglichkeit von Unterbaugruppen. I.e. Sie können drei Teile haben, die zu einer Baugruppe verarbeitet werden, und diese Baugruppe plus zwei andere Teile werden in den Schuh eingebaut.

Die Art, wie ich in der Regel diese behandelt ist so etwas gesehen haben:

CREATE TABLE part (
    id int autoincrement, 
    is_assembly tinyint, 
    ... 
); 
CREATE TABLE component (
    assembly_id int references part(id), 
    component_id int references part(id), 
    qty numeric, -- number used to make assembly 
    equivalent_to int references part(id) 
); 

Beachten Sie, dass diese Art von Struktur, die Sie nisten Baugruppen unendlich ermöglicht.

Das Äquivalenzproblem kann dann gelöst werden, indem der äquivalent_teil hinzugefügt wird, mit dem Sie das umgehen können.

beachten Sie müssen verfolgen in und aus jedem Teil und Baugruppe getrennt, weil Sie nicht mehr eine 1 haben: zwischen den Teilen 1-Zuordnung in und Baugruppen aus.

+0

Danke. Was Sie beschrieben haben, ist meine Tabelle 'Product' und' Product_Hierarchy', denke ich. Dies würde funktioniert toll, wenn alles in derselben Montagelinie produziert wird, sondern weil es nicht den Fall, ich habe harte Zeit, herauszufinden, wohin der 'assembly' ins Spiel kommen. Zum Beispiel 'p_1' besteht aus' 'und p_1.1' p_1.2' (die von anderen Produkten bestehen kann), und das Produkt kann als' p_1' identisches Produkt aus 2 verschiedenen Baugruppen kommen. Problem ist, dass die erste Baugruppe erforderlich, um sowohl '' und p_1.1' p_1.2' während die zweite erfordert nur 'p_1.1' (wird liefern' p_1.2' selbst). Wie erfassen Sie das? – emihir0