2015-07-05 10 views
5

Ich habe einen kleinen JavaFX mit 2 Szenen gebaut. Der Benutzer kann 3 Felder (Text) eingeben und einige Dokumente für ein Objekt hochladen.Java Datenbank Richtiger Ansatz

Also dachte ich, wenn der Benutzer auf Speichern klickt, wird ein JSON-Objekt erstellt und an eine Liste von JSON-Objekten angehängt. Diese JSON-Objekte werden dann in eine Datei geschrieben.

Das ist, was ich dachte:

{ 
    "objects": { 
     "object1": { 
       "field1": "foo" 
       "field2": "foo" 
       "field3": "foo" 
       "folderwithfileslocation": "C:/ProgramFiles/myapp/foobar/" 
       }, 
     "object2": { 
       "field1": "foobar" 
       "field2": "foobar" 
       "field3": "foobar" 
       "folderwithfileslocation": "C:/ProgramFiles/myapp/barbar/" 
       }, 
....... 
.... 
.. 
} 

Diese werden in Objekte beim Start gelesen werden, so dass der Benutzer hat Zugriff auf sie, so kann er sie bearbeiten, hinzufügen, löschen, etc etc typische CRUD .

Ist dies ein richtiger Ansatz? Es würde maximal 500-600 Datensätze geben. Sollte ich eine eindeutige ID (idk wie randomUUID()) hinzufügen?

Dank

+0

Sie speichern nur den Dateipfad oder senden die eigentliche Datei ?? – Karthik

+0

Ich dachte über das Speichern eines Dateipfads für jedes Objekt nach, das alle Dateien enthält, die für das Objekt hochgeladen wurden. So kann ich ein einfaches expoler Fenster öffnen, das diesen Dateipfad gegeben ist. –

+0

Wenn ich dies mit NoSql Datenbanken vergleiche, haben die 1 eindeutige ID für jedes Dokument. –

Antwort

3

Die meisten Datenbankschemata würde eine UUID als Primärschlüssel hinzufügen, aber es ist wichtig, warum zu realisieren - der Primärschlüssel ermöglicht es Ihnen, ein bestimmtes Dokument zu suchen. Wenn ein Benutzer ein bestimmtes Dokument aktualisiert oder löscht, müssen Sie diesen Datensatz in der Datenbank finden, damit Sie diese Aktion anwenden können.

Wenn eine der anderen Spalten (möglicherweise der Ordner?) Eindeutig ist (und nicht Nullable), würde dies als eine vollkommen gute PK selbst ohne Hinzufügen einer UUID dienen. Gleichermaßen, wenn die Objekte immer als eine Liste gelesen werden, könnten Sie den Index in dieser Liste als eine PK verwenden, aber das macht einige Annahmen über die Reihenfolge der Liste. Wenn diese die Aufgabe für Sie nicht erledigen, ist das Hinzufügen einer PK wahrscheinlich eine gute Idee, und eine UUID ist eine sehr gute Möglichkeit, dies zu tun.

Persönlich würde ich erwarten, dass es sich lohnt, eine UUID nur zum Debuggen hinzuzufügen. Die Gemeinkosten sind winzig und es macht einen großen Unterschied zur Rückverfolgbarkeit.

Verwandte Themen