Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   artikel mit stücklisten in db abbilden (https://www.delphipraxis.net/145888-artikel-mit-stuecklisten-db-abbilden.html)

khh 10. Jan 2010 06:53

Datenbank: firebird • Version: 2.1 • Zugriff über: zeos

artikel mit stücklisten in db abbilden
 
hallo zusammen,
wie würdet ihr folgende Anforderung in einer DB abbilden.(3te Normalform?)

Artikel mit Stücklisten.
Der Artikel kann sich sowohl aus "Rohteilen" sowie auch aus "Fertigteilen" zusammen setzten.
Diese Fertigteile wiederum müssen sich in der gleichen Tabelle befinden wie die anderen zusammengesetzten Artikel.

Als Beispiel:
Möbelhaus

Küche besteht aus Herd, Kühlschrank, Tischgruppe, Spüle usw.

Tischgruppe kann auch separat verkauft werden.
Spüle gibts nur im Kücheneinbau, diese hat also in der Tabelle Artikel nix verloren.
Die Tischgruppe aber schon.

Danke für eure Ideen

Gruss KH

Berni68 10. Jan 2010 07:56

Re: artikel mit stücklisten in db abbilden
 
Tabelle Artikel:
----------------
IdArtikel (Primärschlüssel)
ArtArt (Bool: Rohteil oder Fertigteil)
Benennung

Tabelle Stückliste:
-------------------
IdStueck (Primärschlüssel)
IdArtikel (Referenz zu Tabelle Artikel)
Anzahl

Zitat:

"Spüle gibts nur im Kücheneinbau, diese hat also in der Tabelle Artikel nix verloren."
Muss aber drin sein, kann aber wenn nur Fertigteile sichtbar sein sollen mit ArtArt ausgeblendet werden.
Vorteil: Man hat zu jedem Artikel die Stückliste sofern sich in der Tabelle Stückliste
entsprechende Einträge befinden, man kann aber auch die Tabelle Stückliste andersrum als Verwendungsnachweis nutzen, d.h. in welchen Artikeln ist z.B. die Spüle verbaut.

Reinhard Kern 10. Jan 2010 08:57

Re: artikel mit stücklisten in db abbilden
 
Zitat:

Zitat von Berni68
Zitat:

"Spüle gibts nur im Kücheneinbau, diese hat also in der Tabelle Artikel nix verloren."
Muss aber drin sein, kann aber wenn nur Fertigteile sichtbar sein sollen mit ArtArt ausgeblendet werden.

Viele Teile sind ambivalent, ich kenne das Problem aus der Elektronik-Fertigung: ein Netzteil kann man als Netzteil verkaufen, es kann aber auch Teile eines PCs sein. Das Netzteil wiederum enthält eine oder mehrere Platinen, die wiederum nach Stückliste gefertigt werden müssen, ev. auch ausser Haus, oder sie werden zugekauft. Andrerseits kann der PC Teil einer Anlage sein...

Das ganze ist also rekursiv aufgebaut über mehrere Stufen, aber das ist kein Problem der DB, sondern der Auswertesoftware. Es fragt sich, ob man überhaupt zwischen Artikeln und Teilen unterscheiden kann, im Prinzip können viele Teile beides sein - die Frage bei einem Teil ist nur, kann man es einkaufen (vom Widerstand bis zum fertigen PC) und kann man es verkaufen, wobei sich beides keineswegs ausschliesst, und eine einfache Lagerverwaltung für Händler fällt so nebenbei mit ab (für den Händler ist alles EK und VK, er fertigt nichts).

In der Praxis ergeben sich noch genügend Detailprobleme, und es ist erhebliche Disziplin in der Anwendung notwendig: wenn ich in eine Laborschaltung einen zusätzlichen Widerstand einlöte, muss ich in in der Lagerverwaltung austragen. Gelöst werden muss auch das Problem der Reservierung: ein Kunde bestellt 10 Netzteile - 4 sind auf Lager, dazu 2 Platinen, und für die übrigen werden Bauteile gebraucht. Alles das muss reserviert werden, wenn dem Kunden der Auftrag bestätigt wird, und steht für andere Projekte nicht mehr zur Verfügung. Lieferzeiten sind auch noch zu beachten. Und damit es nicht so einfach wird und sich die Sache lohnt, lasse ich nicht die fehlenden 4 Netzteile, sondern gleich 25 fertigen.

Nur mal so als Grundlage. Das Thema ist vielfach komplexer als etwa eine Buchhaltung.

Gruss Reinhard

khh 10. Jan 2010 09:43

Re: artikel mit stücklisten in db abbilden
 
Zitat:

Zitat von Berni68
Tabelle Artikel:
----------------
IdArtikel (Primärschlüssel)
ArtArt (Bool: Rohteil oder Fertigteil)
Benennung

Tabelle Stückliste:
-------------------
IdStueck (Primärschlüssel)
IdArtikel (Referenz zu Tabelle Artikel)
Anzahl


Muss aber drin sein, kann aber wenn nur Fertigteile sichtbar sein sollen mit ArtArt ausgeblendet werden.

dann nehmen wir ein anders Beispiel:
Kochrezepte!

Hier sind die Zutaten (Stückliste)sprich Kartoffen, Nudeln, Mehl usw. wohl unbedingt in einer separaten Tabelle (Zutaten).
Trotzdem muss es möglich sein, Produkte aus "Artikel" zusätzlich in der Stückliste zu verwenden, da so was vorkommen kann.
In diesem Fall würde ich die Artikel die auch als "Zutat" verwendet werden können, redundant in Zutaten speichern.
oder seht ihr ne andere Möglichkeit?

Gruss Kh

Berni68 10. Jan 2010 10:06

Re: artikel mit stücklisten in db abbilden
 
Eben gerade nicht:

Artikeltabelle:
---------------
Art. Benennung Mengeneinheit
01 Rührei Portion
02 Eier Stück
03 Speck gramm
04 Salz gramm
05 Pfeffer gramm

Stücklistentabelle:
-------------------
IdStueck IdArt Menge
01 02 3
01 03 100
01 04 5
01 05 10

ok. Ich hab das oben falsch beschrieben, IdStueck ist natürlich nicht der Primärschlüssel
sondern gibt nur die Zeilen für die Stückliste von Rührei an.
d.h. wenn ich das Kochrezept für Rührei haben will gebe ich die Zeilen der
Stücklistentabelle aus bei denen IdStueck=01 ist.
Wobei nicht notwendigerweise in der Stücklistentabelle IdStueck mit der Artikelnummer belegt sein muss, sondern eine eigene Nummer, es könnte für Rührei ja auch mehrere verschiedene Rezepte geben.
Für Eier, also Art.02 bibt es in der Stücklistentabelle keine Zeilen bei denen IdStueck=02 ist.
In einer weiteren Tabelle 'Arbeitsplan' kann man dann in gleicher Art und Weise hinterlegen was mit dem Zeug gemacht werden muss.

Sir Rufo 10. Jan 2010 11:30

Re: artikel mit stücklisten in db abbilden
 
Code:
Artikel-Tabelle:
================
Feld  P Beschreibung
------ - ----------------------------------------
ArtID 1 ArtikelID
SetArt  Ist Set-Artikel? (Ja, Nein)
EinzVK  Darf einzeln verkauft werden? (Ja, Nein)

Set-Tabelle:
============
Feld P Beschreibung
----- - ---------------------------------------------
SetID 1 Referenz auf die ID des Set-Artikels
ArtID 2 Referenz auf die Artikel, die zum Set gehören
Menge  Anzahl im Set

hoika 11. Jan 2010 15:51

Re: artikel mit stücklisten in db abbilden
 
Hallo,

bei Stücklisten gibt es Stücklisten-Positionen.
Jede Position hat eine Referenz auf das Teil

Wurzel der Stückliste ist selbst auch ein Position / Teil (das Zusammenbauteil).

Die Beziehung von OT/UT ist eine eigene Tabelle

Tab1 Part Teile
PartId
PartName


Tab2 PartsList Stücklisten
PartsListId


Tab3 PartsListPos Stücklisten-Positionen
PartsListPosId
PartsListId Referenz auf Tabelle PartsList
PartId Referenz auf Tabelle Part
OTPosId Referenz auf PartsListPos (Oberteil)
Number Integer Anzahl der Teile der Position


Knackpunkt ist OTPosId als Anzeige,
zu welcher Position das Teile gehört.


Wenn jetzt die Frage aufkommt, warum die Teile nicht direkt verlinkt sind ...

Bei einer Stückliste muss auch angeben werden,
wie viele Unterteile zu einem (Ober)teil gehören

Stk-Liste
Teil 1
Teil 1.1 2 Stück
Teil 1.2 1 Stück
Teil 2

...


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz