Neuigkeiten:

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

Mobiles Hauptmenü

Datenbak aufteilen

Begonnen von Elwood, Juli 28, 2011, 21:39:21

⏪ vorheriges - nächstes ⏩

Elwood

Hallo!

Ich möchte eine Datenbank Aufgrund einer Selektion aufteilen. Und die Komplettstruktur behalten.
(Es handelt sich um eine Kontaktdatenbank mit mehreren verknüpften Tabellen. Sie soll aufgeteilt werden, um mehrere Leute dran arbeiten zu lassen. Die selektion erfolgt über ein generiertes SQL- Statement.  Nach Bearbeitung werden die Daten wieder zusammengeführt.)

Ich habe mir das erst mal so vorgestellt:
1. die Struktur der Tabellen in eine neue Datenbank kopieren
2. auf Basis der Selektion die Tabellen der neuen Datenbank füllen
3. Sicherungskopie der aktuellen Datenbank erstellen
4. Selektierte Datensätze aus der Quelldatenbank löschen

Hat jemand Ideen, wie das am einfachsten zu bewerkstelligen ist?
Besonders Punkt 1?
Der Rest müsste ja weitgehend per SQL zu machen sein.

THX, Gerhard

Hondo

Hallo,
deine Idee ist imo wenig sinnvoll.
Teile die Datenbank lieber so auf, dass in einer mdb alle Tabellen (Backend) und in einer zweiten mdb der Rest ist. (Frontend)

Das Backend kommt zentral auf einen Server, das Frontend wird an alle User verteilt die es lokal installieren. Danach noch Tabellenverknüpfung herstellen und fertig.

Gruß Andreas

Elwood

Hallo Andreas,

Dies Frontend-Backend  Aufteilung ist schon vollzogen.
Nur die Sache mit dem Server ist nicht machbar (es gibt keinen).
Zudem müsste man die DB dann noch Multiuser-fähig haben.

Daher der Gedanke mit der Teilung.

Gerhard

MzKlMu

#3
Hallo,
wenn es keinen Server gibt, heist das jeder hat auf seinem PC eine unabhängige DB die er bearbeitet?
Wie willst Du dann bei der Zusammenführung sicherstellen, dass alles (die Daten) an seinem Platz ist?
Oder bearbeitet jeder ausschließlich seine Daten?
Kannst Du das Vorhaben mal etwas mehr erklären?

ZitatZudem müsste man die DB dann noch Multiuser-fähig haben.
Access ist von Haus aus ohne besondere Maßnahmen Multiuser fähig.
Gruß Klaus

Hondo

Hallo,
wenn du keinen Server hast ist das kein Access Problem.
Du benötigst ja eigentlich nur ein Rechner als Fileserver, und eine Heimnetz-Einrichtung über die die Client-Rechner zugreifen.
Jedes andere Konstrukt ist unsinnig weil Redundanzen und Datenbankfehler vorprogrammiert.

Gruß Andreas

Elwood

Genauer erklärt ist das so:
Mehrere Leute rufen bei Firmen an und protokollieren diese Anrufe in der Datenbank.
Diese Leute sitzen an völlig unterschiedlichen Orten. Client-Server fällt daher aus.

Jeder bekommt einen Teil der Datenbank, den er bearbeitet. Nach der Bearbeitung werden die Teile wieder zusammengefügt. Das scheint mir der einzig mögliche Weg, da ein Abgleich nicht möglich wäre, wenn jeder an der vollen Datenbasis arbeiten würde.

Aber zum Aufteilen brauche ich jeweils erst die DB-Struktur in einer neuen Datei und schreibe dann dorthin die extrahierten Daten (siehe oben)

edgar.basler

ZitatDiese Leute sitzen an völlig unterschiedlichen Orten. Client-Server fällt daher aus.
Dies ist zuerstmal kein Grund. Haben diese "unterschiedlichen Orte" technischen Zugriff auf die DB oder nicht?
Wenn ja, dann würde ich dies machen wie "Hondo" es beschrieben hat.

Elwood

Die einzige Möglichkeit aus meiner Sicht in der von euch vorgeschlagenen Richtung ist ein FTP- Server. Der nützt aber nichts, da in dem Fall die DB zur Bearbeitung runtergeladen und anschließend wieder hochgeladen wird.
Einen über Internet erreichbaren Fileserver? Da hab ich k.A. wie das mit einfachen Mitteln gehen soll.
Vermutlich auch zu aufwändig.

Keine Tipps für meinen Ansatz?

Gerhard

Hondo

Hallo,
nein, bei diesen Gegegenheiten (die man im Posting Nr. 1 ruhig hätte erwähnen können) brauchst du einen per IP zugänglichen SQL Server, und statt Access MDB-Dateien ein Access Projekt ADP.

Andere Alternativen sind fehleranfällig und bedeutet häufigen manuellen Eingriff in die Datenbank zur Korrekttur, etc.
Ich würde über eine Webbasierte Lösung nachdenken, d.H. MySQL Datenbank und PHP-Programmierung.
Das ist von der Entwicklung und den Hostingkosten abgesehen (letztere sind aber gering) fast kostenlos.

Gruß Andreas

Marsupilami72

Von welchen Datenmengen reden wir denn? Wie viele Nutzer, wie viele Datensätze?

Was für Internetanschlüsse stehen an den Standorten zur Verfügung?

Wenn durchgängig mehrere MBit/s zur Verfügung stehen, könnte man die Standorte per VPN verbinden - dann arbeiten alle wie in einem lokalen Netzwerk und können gemeinsam auf das Backend zugreifen.

Nach der Projektbeschreibung halte ich aber ebenfalls eine webbasierte Lösung für die bessere Wahl...

Elwood

#10
Danke für die Tipps!
Leider habe ich von PHP ebenso wenig Ahnung, wie vom Aufsetzen von webbasierten SQL- Servern.
Die DB umfasst ein paar hundert Kundenstammsätze und  5-10x soviel Bewegungsdaten.
Nicht viel also.
5-10 Leute arbeiten dran, aber nur jeweils 2-3 gleichzeitig.

Ich will hier auch nicht ein riesen Projekt aufsetzen, sondern 1.2 Tage in Access investieren und gut.
Deshalb würde ich meinen Opel dem vorgeschlagenen Rolls vorziehen. (VPN ifällt ebenfalls  in die Kategorie)

Gerhard

Stapi

Hallo Elwood

Schon mal über eine Datenbank als Replikat nachgedacht. Dort gibt es ein Desingmaster an dem du Ändernungen aller Art vornehmen kannst, das Replikat verwenden deine Nutzer. Die Nutzer können ohne Netzwerk Verbindung mit ihrer Datenbank arbeiten, somit Daten erfassen oder ergänzen. Der Daten Austausch findet dann per Replizieren zwischen den Replikaten oder dem Desingmaster statt, das kann z.b per USB Stik oder aufgebauter Datenleitung UMTS Netz stattfinden.

Gruß Stefan
Grüße aus dem schönen NRW
Stefan

Elwood

Wäre das Replikat eine schlichte Kopie? Oder ist das eine spezielle Funktionalität?
Gibt es da was um drüber nachzulesen?

Gerhard

DF6GL

Hallo,

ja sicher    ;) :    gockel mal z. B.  nach "Access Replikat"

database

Hallo,

ZitatGibt es da was um drüber nachzulesen?

z.B.:  http://office.microsoft.com/de-de/access-help/CH006366427.aspx?

Replikation erzeugt weder eine multiuserfähige Datenbank noch ist es m.E. ein gangbarer Weg im produktiven Umfeld Daten auf diese Weise zu aktualisieren.
Replikation wäre nach meinem Dafürhalten dann sinnvoll einzusetzen, wenn jeden Tag um 7:00 alle Beteiligten vom gleichen Datenbestand auszugehen hätten - alles andere wird mühsam.

Werden die neuen Dateiformate verwendet (ACCDB) egal ob von Acc2007 oder 'Acc2010 fällt Replikation sowieso flach, da diese bei ACCDB-Dateien nicht unterstützt wird.

Zitatin der von euch vorgeschlagenen Richtung ist ein FTP- Server
Nein, davon war hier keine Rede. Mit einem FTP-Server würdest du nichts anfangen können.

Wenn alle Möglichkeiten einer zentralen Datenspeicherung ausfallen die im 'konventionellen' Umfeld Gang und Gäbe sind gefällt dir vielleicht das:
http://www.microsoft.com/visualstudio/en-us/lightswitch/overview