Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

DB-Design aus Excelsheet

Begonnen von Fantacola, Oktober 10, 2011, 14:13:40

⏪ vorheriges - nächstes ⏩

Fantacola

Hallo zusammen
Ich würde gerne meine Excelverwaltung in Access durchführen und stosse auf folgendes Problem:

Die Exceltabelle sieht so aus:

Artikel : Lieferant : Hersteller : Details_zu_dieser_Kombination

Das heisst ich kaufe einen Artikel bei einem gewissen Lieferant. Dabei ist es mir wichtig zu wissen, wo der wiederum den Artikel her hat. Für diese Kombination aus Artikel_Lief_Herst gibt es dann noch Details.
Für Lieferanten und Hersteller gibt es ebenfalls noch zusätzliche angaben, die für beide gleich sind. Also es wird bei beiden nach gewissen Zertifikaten gefragt:

Lieferant oder Hersteller : Zertifikat 1 : Zertifikat 2

Für Access habe ich diese Exceltabelle in Artikel und Lieferanten gesplittet. Die Lieferantentabelle sind einfach Adressen, also habe ich die Hersteller auch da rein gepackt, dazu diese Zertifikate.
Für die m:n-Beziehung wollte ich eine Zwischentabelle machen.

Das sieht jetzt so aus:


tbl_Artikel
tbl_Lieferanten_Hersteller_Zertifikate
tbl_Art_Lief_Hersteller

Das Problem ist jetzt, dass ies irgendwie nicht klappt, dass ich je eine Beziehung mit ref. Integrität zwischen einmal tbl_art_Lief_hst und tbl_lief_hst für den ieferanten und dasselbe für den Hersteller einrichten kann. Muss ich die Lieferantetabelle tatsächlich in lieferanten und Hersteller splitten?

Danke sehr für die Hilfe
Daniel

DF6GL

HAllo,


--als einfachste Lösung wäre eine Aufteilung in zwei Tabellen zu sehen, insbesondere dann, wenn sich unterschiedliche Attribute (Tabellenfelder) für Herst. und Liefer. ergeben würden.

--Bei einer Tabelle "tblAdressen" müßte ein Unterscheidungsmerkmal (z. B.  ein Feld mit 1==Hersteller, 2== Lieferant  ( 3==Hersteller UND Lieferant)  ) mitgeführt und bei jeder Aktion damit unterschieden werden, um welchen "Adresstyp" es sich gerade handelt.

Die weitergehende Frage dazu stellt sich, ob ein Hersteller auch ein Lieferant sein kann. Dann käme eher die zweite Lösung  in Frage

fantacola

Danke für die Antwort. Es ist in der Tat so, dass Hersteller auch Lieferanten sein können. Und das mit der Extraspalte mit 1,2 oder 3 für lief, hst oder beides ist mir auch schon in denn Sinn gekommen.
Wie verbinde ich aber das ganze, das verstehe ich nicht.

Gruss
Daniel

fantacola


DF6GL

Hallo,

wobei weiter wissen?


Welche Tabellen (Name, (Schlüssel)Felder, Datentypen)  hast Du bis jetzt erzeugt?

fantacola

halli hallo,
freut mich, dass du dich meiner annimmst. schau mal das bild an bitte. die beziehungen sind jedoch eben falsch...
bei der tabelle hersteller habe ich den typ definert hersteller, lieferant oder herst=lieferant...
lg



[Anhang gelöscht durch Administrator]

DF6GL

HAllo,

ja, die 1:1-Beziehungen sind falsch. Lieferanten und Lieferantendetails müssen in 1:n-Bezeihung stehen, dito für das Material

fantacola

Hallo, danke für die antwort. Bei den lieferantendetails gibt es aber tatsächlich pro lieferanten genau einen satz mit details. Die hät ich nicht trennen müssen.
Das Problem ist immer noch, dass ich die Verknüpfumg q-info mit den lieferanten/herstellern-tabelle nicht schaffe. Wie muss ich es einrichten? Die lieferanten enthält jetzt eine spalte mit l=lieferant, h=hersteller und lh=hersteller ist gleich lieferant pro eintrag. Im q-info hat es je eine spalte für lieferant und für hersteller, die sind zwingend. Was muss ich da mit der l h umd lh aus der adresstabelle einrichten.
Gruss fast vom hochrhein

database

#8
Hallo,

füge ein Feld 'Zert_FK' [Zahl, LongInteger] in die Tabelle Lieferanten ein, wenn 100%-ig feststeht, dass es NIEMALS mehr als einen einzigen Datensatz Details pro Lieferant wird geben können.
Erzeuge dananch eine Tabelle 'tblZert' mit den Feldern 'Zert_ID' Primärschlüssel [AutoWert] und 'ZertBezeichnung' [Text] Ich nehme an, dass in den Feldern der Tabelle Lieferantendetails keine Einträge stehen sondern diese Felder Ja/Nein - Felder sind.
Lege dann in der 'tblZert' Datensätze an, die in in 'ZertBezeichnung' als Text die Feldnamen der Tabelle 'Lieferantendetails' enthalten.

Dann erzeugst du eine Tabelle 'tblLiefZert' mit den Feldern LZ_ID, Primärschlüssel [AutoWert], Lieferant_FK [Zahl, LongInteger] und Zert_FK [Zahl, LongInteger]
und setze diese über 'Zert_ID' und 'Zert_FK' mit der Tabelle 'tblZert' 1:n in Beziehung sowie über die Felder 'SAP_vendor' (wenn dies der Primärschlüssel der Lieferanten ist) und 'Lieferant_FK'
ebenfalls 1:n in Beziehung.
Diese Zwischentabelle bekommt nun für jedes Zertifikat, das ein Lieferant/Hersteller inne hat einen Datensatz
mit dem Fremdschlüssel des Zertifikats und dem Fremdschlüssel des Lieferanten eingetragen.

ZitatIm q-info hat es je eine spalte für lieferant und für hersteller, die sind zwingend
...Hmmmm... das halte ich für ein kühnes Gerücht  ;) :D

Erzeuge eine Tabelle 'tblLiefHst' mit den Feldern 'LH_ID'  Primärschlüssel [Autowert] und 'LH_Art' [Text].
In der Tabelle q-info erzeugst du ein Feld 'LH_FK' [Zahl, LongInteger] und setzt dieses mit 'LH_ID' der tblLiefHst 1:n (mit ref. Integrität) in Beziehung.
Die Felder Lieferant und Hersteller entfernst du aus der Tabelle q-info, an deren Stelle tritt ja nun das Feld 'LH_FK' (FK steht hierbei für ForeignKey).

ZitatDie lieferanten enthält jetzt eine spalte mit l=lieferant, h=hersteller und lh=hersteller ist gleich lieferant pro eintrag
Diese Felder läßt du aus dieser Tabelle verschwinden, die werden da nicht benötigt.

Die Tabelle 'tblLiefHst' versorsgt du mit den Einträgen 'Lieferant', 'Hersteller' sowie 'Lieferant und Hersteller'.
Die passenden Fremdschlüssel überträgst du dann anschließend für die bereits bestehenden Datensätze der Tabelle q-info.

Aus dem Beziehungsdiagramm entfernst du dann anschließend die Aliastabelle (Lieferant_1) - die wird nicht mehr benötigt.

Weiter kann ich dir nur wärmstens ans Herz legen deine Feldbezeichnungen abzuändern!
KEINE LEERZEICHEN, UMLAUTE und/ODER RESERVIERTE WÖRTER in FELD-, TABELLEN- und OBJEKTBEZEICHNUNGEN!


HTH

fantacola

#9
Irgendwie begreife ich es noch nicht. Mhh..soll es so sein?

Die neue Zwischentabelle tblLiefHerst enthält LH_ID und LH_Art. Heisst das, dass ich also einen Kombinationsdatensatz mit Lieferant und Hersteller erzeugen soll. Also LH_1, Lieferant A, Hersteller C. Diesen kann ich dann als LH_FK dem q_info zuordnen? Es kann ja durchaus sein, dass mehrere Artikel die gleiche Kombi haben.

Ich verstehe abe nicht, wie die tblLiefHerst mit der tblLieferanten (also alle Firmen zusammen) verknüpft sein soll. Mir scheints, dass ich dann wieder am Punkt bin, dass die tblLiefHerst wieder zwei Einträge aus einer Tabelle, der tblLieferanten, hat.

Gruss
Daniel

database

Hallo,

HTH ist kein Name ...   ;) ;D ::)

sieh mal da den letzten Eintrag an ... 
http://www.access-o-mania.de/index.php?ind=community&op=akronyme&letter=h

*grins*

fantacola

Zitat von: database am Oktober 25, 2011, 15:55:21
Hallo,

HTH ist kein Name ...   ;) ;D ::)

sieh mal da den letzten Eintrag an ... 
http://www.access-o-mania.de/index.php?ind=community&op=akronyme&letter=h

*grins*


Ahhh hihi, danke sehr. Naja hab oben den Kommentar angepasst, weil es not yet really helped but I'm getting closer to it :-)
Würde es dir etwas ausmachen, das vielleicht an einem Exempel zu statuieren?

Gruss

database

Hallo,

lade mal deine bisherige DB hier KOMPRIMIERT / REPARIERT und GEZIPT hoch
ich baue dir die Tabellen ein

fantacola

Zitat von: database am Oktober 26, 2011, 08:38:06
Hallo,

lade mal deine bisherige DB hier KOMPRIMIERT / REPARIERT und GEZIPT hoch
ich baue dir die Tabellen ein

Sehr nett..habe dir eine PM geschickt

database

#14
Hallo,

ich habe deine Datei überarbeitet und hänge nun hier das aktuelle Tabellendiagramm rein.
Die geänderte DB sende ich dir zu.

Mir bleiben aber noch Zweifel in Bezug auf die Felder 'AuditAm' und 'AuditberichtNr' welche sich in der Tabelle 'tblMaterialdetails' befinden.
M.E. haben diese Felder dort gar nix verloren sondern sollten doch eher mit dem auditierten Unternehmen in Verbindung stehen.
Dies angesprochenen Spalten befinden sich derzeit noch in der tblMaterialdetails - nähere Infos dazu wären nett  ;D

Andererseits war die Schwierigkeit jene, die aus Excel übernommenen Tabellen so zu berichtigen, dass sie in Access verwendbar sind.
Zu dem Zweck wurden div. Felder neu erstellt, Schlüsseldaten per Aktualisierungsabfragen an die richtigen Stellen verfrachtet, Beziehungen neu eingestellt,
Feldnamen und Tabellenbezeichnungen auf ordentlichen Standard gebracht und fehlende Tabellen ergänzt. Dadurch, dass sich die Beschreibungen
und die aktuelle Tabellensituation nicht ganz gedeckt haben, war mein Vorschlag in #8 nicht 1:1 umsetzbar.
Ich musste mich an Gegebenheiten angeglichen durch die Tabellen kämpfen...

Die Informationen zu den erlangten Zertifikaten wären allerdings noch in der DB nachzutragen.
Wobei zu bemerken ist, dass sehr wohl Unternehmen existieren, die mehr als ein Zertifikat besitzen und somit die
Anzahl der zu erwartenden Datensätze höher ist, als die ursprünglich angenommene Anzahl (max. einer pro Lieferant  ;))

Ich fürchte aber dennoch, dass die tblMaterialdetails noch nicht den Normalisierungsgrad aufweist, den sie besitzen sollte.
Leider fehlen da eben die entsprechenden Hintergrundinfos (Szenarien und Funktionsbeschreibung der Gesamtlösung)

p.s. DB ist am Weg....

HTH





[Anhang gelöscht durch Administrator]