Benötige Hilfe bei Lagerverwaltung

rookiebalboa

Neuer Benutzer
Beiträge
2
Hallo zusammen,

ich bin ein Datenbankneuling und würde bei mir am Arbeitsplatz gerne eine Lagerverwaltung einführen, da es derzeit nur eine chaotische Lagerhaltung gibt und die ist wirklich chaotisch ;)
Es handelt sich um ein Lager für die Proben von abgeschlossenen Projekten, die eine bestimmte Zeit aufbewahrt werden müssen und falls notwendig wieder gefunden werden sollen.

Aus diesem Grund habe ich mich in die Thematik eingelesen und mir bereits einige Gedanken dazu gemacht wie ich die Tabellen aufbauen könnte. Ein Bild des ER-Diagramms befindet sich im Anhang. Womit ich auf jeden Fall noch zu kämpfen habe, sind die identifizierenden und nicht identifizierenden Beziehungen. Ich bin mir sicher das die vielen Schlüssel in meinen Tabellen nicht wirklich sinnvoll sind, aber die ergoogelte Theorie konnte mir bisher noch nicht wirklich weiterhelfen.
Darum würde ich mich über ein paar Tipps und Anregungen von euch sehr freuen :)
Falls noch weitere Informationen gewünscht sind, liefere ich die natürlich gerne nach.

lg
 

Anhänge

  • Datenbank.png
    Datenbank.png
    102,3 KB · Aufrufe: 3
Werbung:
a) Also die ID KontaktAuftraggeber in der Projektspalte scheint mir nicht sinnvoll. Der Kontakt läßt sich ja über die Beziehung Auftraggeber herstellen. Oder soll es mehrere Kontakte bei einem Auftraggeber geben und die Projekte dort nur von bestimmten Personen betreut werden? Dann wäre wiederum zu überlegen, ob 2 FKs in Auftraggeber (also ein Maximum von zwei Kontaktdaten pro Auftraggeber) sinnvoll ist. Alternative wäre eine n:m Beziehung mit Zwischentabelle.

b) Deine Lagerverwaltung wird so nicht sinnvoll funktionieren. Im Moment kann ein Behältnis mehrere Lagerplätze haben die wiederum mehrere Lagerräume haben. Das ist glaube ich eher genau andersrum gewollt. Die Fremdschlüssel sind also in den falschen Tabellen.

c) Derzeit kann ein Projekt nur maximal ein Behältnis haben. Wenn das so gewollt ist, kannst du dir Lagerraum ID und Lagerplatz ID in der Projekt Tabelle sparen, denn du kannst über die Behältnis ID auf den Ort schließen, sofern diese auch eindeutig ist und b) beachtet wurde. Wenn ein Projekt mehrere Behältnisse haben können soll, dann müsstest du auch hier mit Zwischentabellen arbeiten.

d) Dein Projektverantwortlicher hat auch Fremdschlüssel zu allem und jedem. Das ist quatsch :)

Du solltest dich nochmal genau mit Fremdschlüsseln auseinander setzen.
 
Hallo Ukulele,

vielen Dank für deine Antwort, das hilft mir schon sehr weiter :)

zu a)
Ein Auftraggeber soll mehrere Projekte in Auftrag geben können. Ein Projekt soll mehrere Auftraggeber haben können. Also bilde ich eine n:m Beziehung zwischen Projekt und Auftraggeber.
Jeder dieser Auftraggeber kann für jedes Projekt mehrere Kontaktpersonen zur Verfügung stellen. Also bilde ich eine n:m Beziehung zwischen Auftraggeber und Kontaktperson.
Habe ich das so richtig verstanden?

zu b)
Fehler ist ausgebessert :)

zu c)
Ein Projekt soll mehrere Behälter belegen können, da es sein kann, dass sich die Proben in einem Behälter einfach nicht ausgehen.
Wenn ich das richtig verstehe bedeutet das, dass ich eine n:m Beziehung zwischen Projekt und Behältnis erstellen soll? Somit könnte ich die Beziehung zwischen Projekt und Lagerraum trennen.

zu d)
Ein Projekt hat genau einen Projektverantwortlichen. Ein Projektverantwortlicher kann für mehrere Projekte verantwortlich sein.
Das würde eine 1:n Beziehung zwischen Projekt und Projektverantwortlicher bedeuten.
 
a) Korrekt, die Fremdschlüssel stehen nicht in der Projekt oder der Auftraggeber Tabelle sondern in einer Zwischentabelle, die die eigentliche n:m Beziehung abbildet.

c) Korrekt, gleiches vorgehen wie bei a. Du kannst von Projekt auf alle Behälter schließen und du weißt, welcher Behälter wo gelagert ist. Also kannst du über diese Beziehungen dann auch alle Lagerplätze eines Projektes ermitteln.

d) In diesem Fall steht der Fremdschlüssel Projektveranwortlicher in der Projekttabelle. 1:n...


Du solltest dir alle Tabellen und Beziehungen nochmal in Ruhe angucken und auf diese Weise prüfen.
 
Werbung:
Hi,

obwohl die Datenbank vom Aufbau eigentlich ja schon steht, würde ich für die Zukunft raten, zunächst ein ERD (Entity Relationship Diagram) aufzustellen.
In einem solchen Diagramm werden zunächst alle Objekte und deren Beziehungen zuainander dargestellt.
Aus diesen Beziehungen läßt sich dann auch direkt ein Datenbankaufbau erkennen und realisieren. Eventuell muss man das ERD noch in eine größere Tiefe entwickeln und deutlichere Abhängigkeiten ermitteln.

Noch besser wäre natürlich ein direkter Entwurk in UML, was unterm Strich die Technik ist, die sich zum Entwickeln bei solchen Problemstellungen durchgesetzt hat.

Das nur noch angelehnt an den Tipp von ukulele:
ukulele: Du solltest dir alle Tabellen und Beziehungen nochmal in Ruhe angucken und auf diese Weise prüfen.

Viele Grüße,
Tommi
 
Zurück
Oben