2016-12-11 8 views
0

Ich arbeite gerade an einem Projekt, bei dem Benutzer Besprechungen erstellen können, indem sie die erforderlichen Werte eingeben. Das System überprüft dann, ob zu diesem Zeitpunkt bereits eine Besprechung geplant ist, und gibt einen Fehler zurück, wenn dies der Fall ist, um den Benutzer darauf hinzuweisen, dass die Besprechung zu diesem Zeitpunkt nicht geplant werden kann, da sich eine andere überschneidet.Vorschlag zum Speichern verschiedener Datentypen in einer Datei

Bevor ich das alles mache, brauche ich eine Möglichkeit, die Eingabewerte so zu speichern, dass sie später überprüft werden können, um festzustellen, ob sie bereits existieren.

Meine Theorie (obwohl ich nicht ganz sicher bin, wie man es implementiert) wäre, die Menge der Werte in einem Array zu speichern, die in einer Textdatei gespeichert werden. Erstellen Sie dann jedes Mal, wenn ein neues Meeting/Array erstellt wird, die bereits erstellten Meetings/Arrays und prüfen Sie, ob doppelte Daten vorhanden sind.

Die GUI ich bereits die folgenden Werte erstellt haben nimmt:

  • Datum
  • Startzeit
  • Endzeit/Duriation
  • Anzahl der Mitglieder
  • Zimmer auswählen (Dropdown-Liste)

Dann denke ich, das Array (wenn in t gespeichert er Textdatei) würde wie folgt aussehen:

01/01/2017, 10:00, 10:30, 5, "Room 1" 
02/02/2017, 13:30, 13:45, 3, "Room 4" 
... 

Wenn jemand bitte auf meiner Theorie äußern könnte, ob es plausibel ist, und mir helfen, möglicherweise in die Array-Datenstruktur einrichten, die das Teil ist, ich bin die am meisten kämpfen.

Oder wenn Sie denken, dass es eine schreckliche Idee ist und einen besseren Vorschlag haben, dann bin ich definitiv offen für Ideen! :)

Danke!

+1

Sie können die Werte natürlich in einer TXT- oder CSV-Datei speichern. Aber warum nicht eine Datenbank benutzen?Vor allem, wenn Sie Datumsfunktionen verwenden müssen, um zu sehen, ob eine Besprechung in einem bestimmten Zeitfenster platziert wird, wäre eine Datenbank viel sinnvoller als sie in einer Textdatei zu speichern. – Daniel

+0

Bitte suchen Sie Ihre Fragen, bevor Sie fragen, wie dies bereits Tausende Male zuvor buchstäblich gefragt wurde. Wenn Sie das Gefühl haben, dass wir wirklich noch einen brauchen, dann suchen und finden Sie zuerst die vorherigen kanonischen Fragen/Antworten, zeigen Sie die Früchte dieser Suche in Ihrer Frage und erklären Sie klar, warum Sie denken, dass Ihre Frage anders ist. [Zum Beispiel] (https://www.google.com/search?q=site%3Astackoverflow.com+java+storing+data&oq=site%3Astackoverflow.com+java+storing+data&aqs=chrome..69i57j69i58.792j0j9&sourceid = chrome & ie = UTF-8). –

Antwort

0

Der logischste Weg zur Umsetzung Ihrer Idee wäre die Verwendung einer Datenbank. Etwas wie SQLite.

Dann erstellen Sie eine Klasse mit den Eigenschaften von Datum, Startzeit ... Ein Getter und Setter, sozusagen.

Eingabe übernehmen und in der Datenbank speichern, um Zeit und andere Einschränkungen zu überprüfen.

0

Erstens, die Speicherung in einer Datei im Wesentlichen in einem durch Komma getrennten Format ist auf lange Sicht nicht gut skalierbar. Die Kosten für das Parsen der Datei werden immer größer. Da Sie keinen direkten Zugriff haben, müssen Sie eine andere Strategie entwickeln (z. B. das Archivieren alter Daten), um die Dateigröße und den Speicherverbrauch zu begrenzen. Diese Probleme werden bereits von Datenbanken gelöst, und Sie sollten sie verwenden. Wenn es absolut in einer Datei sein muss, können Sie SQLite verwenden, das ist eine SQL-Datenbank, die von einer Datei unterstützt wird (obwohl sie anekdotisch nicht so effizient ist wie eine vollwertige SQL-Datenbank).

Zweitens, das Format, das Sie verwenden, speichern Sie die Daten nicht gut. Was passiert, wenn Sie Termine in anderen Zeitzonen buchen? Was passiert, wenn eine Besprechung eine Datumsgrenze überschreitet oder länger als einen Tag dauert?

Verwandte Themen