Rowana
Lt. Junior Grade
- Registriert
- Okt. 2008
- Beiträge
- 264
Hi,
ich überarbeite gerade eine ältere Datenbank, deren Design wohl nicht optimal ist. Ich erstelle sie in Oracle neu, muss jedoch die Daten übernehmen. Problembereich: ich habe eine Tabelle mit einer Anzahl fixer Lagerplätze und eine Tabelle mit Paketen, die auf den Lagerplätzen zwischengelagert werden. Für diese Zuordnung gibt es eine n:m Zwischentabelle, die nur die Paket-Nr und die Lagerplatz-Nr aufnimmt. Soweit so gut - mir fiel nur auf, dass ein Paket immer auf exakt einem Lagerplatz landet und ein Lagerplatz mit max. einem Paket belegt wird. Vom Design her war das wohl mal dynamischer geplant, tatsächlich wird nur diese 1:1 Beziehung genutzt.
Ich möchte diese Zwischentabelle nun gerne entfernen, weil überflüssig, und beim Paket direkt vermerken, auf welchem Lagerplatz es liegt. Die Nicht-Belegung bereitet mir Probleme. Hier habe ich folgende Alternativen: Ich trage bei einem nicht eingelagerten Paket NULL ein und bei allen anderen die Lagerplatz-Nr. Oder ich erschaffe mir einen Dummy-Lagerplatz und nutze diesen für die nicht eingelagerten Pakete. Dann könnte man auch einen Fremdschlüssel setzen, was bei NULL-Inhalten nicht funktioniert. Bei sämtlichen Auswertungen müsste ich dann nur drauf achten, dass der Dummy-Platz wieder rausgefiltert wird.
Einfache Auswertungen wie "welche Lagerplätze sind noch frei?" funktionieren immer, mit und auch ohne Zwischentabelle. Aber evtl. git es ja Abfragen, die ohne Zwischentabelle nicht mehr umsetzbar sind. Gibt es weitere Alternativen für den Umbau? Verbaue ich mir Möglichkeiten durch das Löschen der Tabelle?
Grüße allerseits
ich überarbeite gerade eine ältere Datenbank, deren Design wohl nicht optimal ist. Ich erstelle sie in Oracle neu, muss jedoch die Daten übernehmen. Problembereich: ich habe eine Tabelle mit einer Anzahl fixer Lagerplätze und eine Tabelle mit Paketen, die auf den Lagerplätzen zwischengelagert werden. Für diese Zuordnung gibt es eine n:m Zwischentabelle, die nur die Paket-Nr und die Lagerplatz-Nr aufnimmt. Soweit so gut - mir fiel nur auf, dass ein Paket immer auf exakt einem Lagerplatz landet und ein Lagerplatz mit max. einem Paket belegt wird. Vom Design her war das wohl mal dynamischer geplant, tatsächlich wird nur diese 1:1 Beziehung genutzt.
Ich möchte diese Zwischentabelle nun gerne entfernen, weil überflüssig, und beim Paket direkt vermerken, auf welchem Lagerplatz es liegt. Die Nicht-Belegung bereitet mir Probleme. Hier habe ich folgende Alternativen: Ich trage bei einem nicht eingelagerten Paket NULL ein und bei allen anderen die Lagerplatz-Nr. Oder ich erschaffe mir einen Dummy-Lagerplatz und nutze diesen für die nicht eingelagerten Pakete. Dann könnte man auch einen Fremdschlüssel setzen, was bei NULL-Inhalten nicht funktioniert. Bei sämtlichen Auswertungen müsste ich dann nur drauf achten, dass der Dummy-Platz wieder rausgefiltert wird.
Einfache Auswertungen wie "welche Lagerplätze sind noch frei?" funktionieren immer, mit und auch ohne Zwischentabelle. Aber evtl. git es ja Abfragen, die ohne Zwischentabelle nicht mehr umsetzbar sind. Gibt es weitere Alternativen für den Umbau? Verbaue ich mir Möglichkeiten durch das Löschen der Tabelle?
Grüße allerseits