Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Scholar am Dezember 04, 2014, 16:21:45

Titel: Mehrere relationale Datenbanken zu einer zusammenführen
Beitrag von: Scholar am Dezember 04, 2014, 16:21:45
Hallo,

ich habe eine Frage zur Projektorganisation. Bei uns werden mehrere relationale Datenbanken mit der identischen Struktur geführt. Zukünftig sollen diese zu einer Datenbank zusammengeführt  und in dieser dann auch weiter neue Datensätze hinzugefügt werden.

Hat jemand eine Idee, wie ich den Fremdschlüssel am besten definiere, damit er auch nach dem zusammenfügen funktioniert und auch neue Datensätze angelegt werden können, ohne dass man den Schlüsselwert manuell eintragen muss (also erst die Daten reinkopieren, dann soll es sich quasi wie Autowert verhalten).

Ich habe mir schon überlegt, für jede Datenbank ein singuläres Kürzel zu geben und dann eine kombinierte ID (also bspw. AA 1001), aber nach dem Zusammenführen könnte ich das Zahlfeld ja nicht mehr als Autowert definieren.

Wäre für einen Ratschlag dankbar!
Titel: Re: Mehrere relationale Datenbanken zu einer zusammenführen
Beitrag von: MzKlMu am Dezember 04, 2014, 16:41:32
Hallo,
Ich würde ich eine Datenbank verwenden und die Daten per Anfügeabfrage aus den anderen Datenbanken übertragen. Die Autowerte einfach weiter hochzählen.
Beim übertragen muss man natürlich auf die bisherigen Beziehungen achten.
In neue Datenbank muss in eine Tabelle natürlich ein Feld zur Kennzeichnung des bisherigen Bereichs.

Ohne die Tabellenstruktur zu kennen, bleiben das nur so allgemeine Hinweis.
Titel: Re: Mehrere relationale Datenbanken zu einer zusammenführen
Beitrag von: Scholar am Dezember 04, 2014, 16:51:01
Hey,

erstmal Danke! Mir geht es genau darum, wie ich auf diese Beziehungen achte.

Die Datenbank besteht derzeit nur aus drei Tabellen für eine m:n-Beziehung

Tabelle1
ID_Tab1 = Autowert ...
...
Tabelle2
ID_Tab1=Fremschlüssel
ID_Tab3=Fremschlüssel
...

Tabelle3
ID_Tab3=Autowert
...

Wenn ich jetzt die Inhalte dieser Tabellen in einer andere Datenbank kopiere, ändern sich
a) die IDs, wenn ich in der neuen Datenbank die ID weiterhin als Autowert belassen
b) oder ich füge jeweils ein Kürzel hinzu, kann das dann aber nicht mehr als Autowert machen; Die Konsequenz wäre, dass ich dann bei neuen Datensätzen den Wert manuell eingeben müsste. Oder gibt es da eine Möglichkeit, dass man dort als Standwert für neue Datensätze angibt: "neuesKuerzel"+[letzterWert+1]?
c) oder gibt es eine dritte, von mir nicht bedachte Variante?


Titel: Re: Mehrere relationale Datenbanken zu einer zusammenführen
Beitrag von: MzKlMu am Dezember 04, 2014, 16:59:33
Hallo,
wir nehmen die Variante c  ;D
In welcher Tabelle willst Du die Datenunterscheidung machen, es sind ja mehrere Datenbanken ?
Titel: Re: Mehrere relationale Datenbanken zu einer zusammenführen
Beitrag von: Scholar am Dezember 04, 2014, 17:10:23
Datenunterscheidung?

Ich habe vier Datenbanken mit der identischen Struktur der drei Tabellen. Und ich möchte die Inhalte aller drei Tabellen der ersten beiden Datenbanken in die dritte Datenbank übertragen, so dass die Bezüge zwischen den drei Tabellen erhalten bleiben. Sorry, wenn ich hier gerade etwas auf dem Schlau stehen sollte.
Titel: Re: Mehrere relationale Datenbanken zu einer zusammenführen
Beitrag von: MzKlMu am Dezember 04, 2014, 17:34:55
Hallo,
ich war der Auffassung, Du musst später noch wissen, aus welcher der 3 Datenbanken die Daten kommen. Wenn das nicht der Fall ist, um so besser.
Ich könnte mir folgenden Ablauf vorstellen.
- in die vorhandenen 3 Datenbanken in allen Tabelle je ein Feld einbauen für eine Zahl
- In alle Tabellen dieses Feld per Aktualisierungsabfrage eine Zahl eintragen (1-3) die auf die jetzigen Datenbanken verweist.
- in Allen Tabellen die Autowerte in ein Zahlenfeld wandeln
- in der Zieldatenbank ein neues Autowertfeld anlegen.
- mit Anfügeabfragen die Daten in die Zieltabellen anfügen
- der Autowert in den Zieltabellen ist ja weiter gelaufen
- jetzt neue Fremdschlüsselfelder anlegen und per Anfügeabfrage alle Daten übertragen
- In einer Aktualisierungsabfrage die neuen Fremdschlüsselfelder mit den neuen Autowerten füllen. Die Aktualisierungsabfrage mit den alten Beziehungen erstellen und 3 Abfragen verwenden die jeweils auf 1, 2, 3 gefiltert werden.
- Alte Fremdschlüsselfelder entfernen und die Zahl.
- neue Beziehungen herstellen.
- Daten prüfen

Ist jetzt nur mal so aufgezählt, nicht getestet, nur überlegt. Es versteht sich von selbst, dass man an Kopien probiert.