Erstens Datenbankanfänger hier. Ich versuche, ein System für die Verarbeitung von Kundenaufträgen in Bestellungen zu erstellen und dann die Bestellung in Versandbehälter aufzuteilen. Das System muss in der Lage sein, eine Kundenauftragsposition in zwei oder mehr Bestellungen und eine Bestellposition in zwei oder mehr Versandbehälter aufzuteilen.
Es wird einige (viele) Anpassungen geben, bei denen eine Kundenauftragsposition, sobald sie aufgeteilt und in mehrere Bestellungen aufgeteilt wurde, später möglicherweise anders aufgeteilt wird. Dies gilt auch, wenn eine Bestellposition zu Versandbehältern verarbeitet wird. Ich kann für mein ganzes Leben nicht wissen, wie ich mit dieser Operation am besten umgehen soll.
Wenn es hilft, sind hier die Tabellen, die ich bisher habe, wobei einige Details der Kürze halber ausgeschlossen sind:
CREATE TABLE PurchaseOrder (
Id INTEGER UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
PurchaseOrderNumber VARCHAR(15) UNIQUE,
PRIMARY KEY(Id)
);
CREATE TABLE Container (
Id INTEGER UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
ContainerName VARCHAR(20) UNIQUE,
PurchaseOrderId INTEGER UNSIGNED,
PRIMARY KEY(Id),
FOREIGN KEY(PurchaseOrderId) REFERENCES PurchaseOrder(Id),
);
CREATE TABLE SalesOrder (
Id INTEGER UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
ClientId INTEGER UNSIGNED,
SalesOrderNumber VARCHAR(10),
PRIMARY KEY(Id),
FOREIGN KEY(ClientId) REFERENCES Client(Id)
);
CREATE TABLE SalesOrderLineItem (
Id INTEGER UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
SalesOrderId INTEGER UNSIGNED,
ProductId INTEGER UNSIGNED,
Qty INTEGER,
Price DECIMAL(5,2),
Cost DECIMAL(5,2),
PRIMARY KEY(Id),
FOREIGN KEY(SalesOrderId) REFERENCES SalesOrder(Id),
FOREIGN KEY(ProductId) REFERENCES Product(Id)
);
CREATE TABLE PurchaseOrderLineItem (
Id INTEGER UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
PurchaseOrderId INTEGER UNSIGNED,
SalesOrderId INTEGER UNSIGNED,
ProductId INTEGER UNSIGNED,
ClientId INTEGER UNSIGNED,
MfgId INTEGER UNSIGNED,
PRIMARY KEY(Id),
FOREIGN KEY(PurchaseOrderId) REFERENCES PurchaseOrder(Id),
FOREIGN KEY(SalesOrderId) REFERENCES SalesOrder(Id),
FOREIGN KEY(ProductId) REFERENCES SalesOrder(Id),
FOREIGN KEY(ClientId) REFERENCES Client(Id),
FOREIGN KEY(MfgId) REFERENCES Mfg(Id)
);
Ich denke darüber nach, zusätzliche Zuordnungstabellen zwischen Kundenauftragsposition und Bestellungen sowie für Bestellposition und Container zu erstellen, um diese Art der Aufteilung von Rücken und Schaum zu verfolgen.
Hilfe geschätzt!