[.NET] Access Denkaufgabe ... nicht leicht

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Spackwurst, 20. November 2008 .

Schlagworte:
  1. 20. November 2008
    Access Denkaufgabe ... nicht leicht

    Hi leute,
    folgendes Puzzle hab ich für euch, wo ich momentan überfragt bin und ihr mir hier vielleicht helfen könnt.

    Ich soll eine Datenbank benutzen die zentral auf einem PC liegt .

    Habe aber noch x-beliebige Laptops die eine kopie der datenbank besitzen können.

    Die Geräte haben keine möglichkeit über ein netzwerk zu kommunizieren, sprich sie können die datenbank nur über usb sticks bearbeiten.

    Wenn jetzt einer von den Usern auf einem der Geräte die Datenbank bearbeitet, muss ich sicherstellen, dass wenn diese daten über einen usb stick zum beispiel eingespielt werden auf dem zentralen pc zwar aktualisiert werden aber wenn ein anderer user seine daten dort aktualisieren will diese nicht überschreiben soll mit den änderungen die der user davor gemacht hat.
    Die user sollen aber immer die aktuelle datenbank mit sich führen.

    Könnt ihr mir folgen?
    Wäre echt fett, wenn mir jemand irgendwie sagen könnte wie ich sowas irgendwie in einer art und weise handling technisch machen könnte.

    Gruss Spack
     
  2. 20. November 2008
    AW: Access Denkaufgabe ... nicht leicht

    Relativ simple :

    Ich erkläre erstmal meinen gedankengang ^^

    Dein zentralisierter PC (call him Central), hat die Mutterdatenbank ! ... und alle anderen haben eine Kopie davon die erstmal exakt identisch ist (status quo).

    Jetzt gehen wir davon aus das jeder DB eintrag eine eindeutige fortlaufende ID besitzt. Z.b auf Central : Person1, Person2, Person3

    Jetzt fügt jemand an einem Terminal Person 4 hinzu, und noch einer fügt an einem anderen Terminal eine Person hinzu (also quasi die zweite Person4).

    Jetzt könntest du hergehen und beim erstellen jeder Person den UNIX-Timecode (bzw irgendeinen timecode) abfragen und mit in einen Datensatz schreiben...

    Code:
    
    Central-Datenbank: 
    Person1 - angelegt : [Timestamp]
    Person2 - angelegt : [Timestamp]
    Person3 - angelegt : [Timestamp]
    
    
    Terminal 1 - Datenbank :
    Person1 - angelegt : [Timestamp] (identisch mit Central-Datenbank)
    Person2 - angelegt : [Timestamp] (identisch mit Central-Datenbank)
    Person3 - angelegt : [Timestamp] (identisch mit Central-Datenbank)
    Person4 - angelegt : [Timestamp] (NICHT identisch mit Central-Datenbank)
    
    Terminal 2 - Datenbank :
    Person1 - angelegt : [Timestamp] (identisch mit Central-Datenbank)
    Person2 - angelegt : [Timestamp] (identisch mit Central-Datenbank)
    Person3 - angelegt : [Timestamp] (identisch mit Central-Datenbank)
    Person4 - angelegt : [Timestamp] (NICHT identisch mit Central-Datenbank UND Terminal1-DB)
    
    Du könntest also wenn du die DB von Terminal 1 importierst anhand des Timecodes feststellen ob die "Person4" bereits vorhanden ist oder ggf ob ein anderes Terminal später ebenfalls eine weitere "Person" angelegt hat.

    Du müsstest halt nur anhand des Timecodes deine Central DB aktualisieren und die "Personen-ID" entsprechend ändern (beim importieren)..

    Hoffe das ist einigermassen verständlich gewehsen...

    ^^ den code dafür kann ich dir leider nicht liefern, arbeite normalerweise mit SQl ^^

    trozdem , mfg inqui !
     
  3. 20. November 2008
    AW: Access Denkaufgabe ... nicht leicht

    Wenn wirklich kein User die Datensätze eines anderen "überschreiben" kann, bedeutet das für mich, dass jeder Benutzer seine eigenen Datensätze hat. Jeder Datensatz würde also z.B. den Namen des Benutzers mit sich tragen. So etwas zu entwickeln macht meiner Meinung nach wenig Sinn, da im Grunde dann auch jeder User seine eigene Datenbank haben könnte und die Datenbanken würde man nur auf dem Zentralrechner sichern.

    Logischer aus meiner Sicht wäre es, wenn mehrere Benutzer die gleichen Datensätze bearbeiten können. Damit würde man Synergieeffekte erreichen. Der neueste Datensatz ist immer der "wertvollste", also der der zählt.

    Um sicherzustellen, dass die einzelnen Schritte nachvollziehbar bleiben, baut man eine Historie der Änderungen auf. Ändert also ein User einen Datensatz, wird der aktuelle Datensatz in einem Abbild der Tabelle (+ Bearbeiterspalte + Datumsspalte) geschrieben.

    Hoffe das hilft.
    BG MaxDev
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.