Zahl in String abspeichern und später berechnen

beta20

Top Contributor
Hallo zusammen,

ich möchte ein dynamisches Formular erstellen, in welchem Daten abgespeichert werden können.
Hierzu möchte ich NICHT in meiner DB ein Feld für jeden Datentyp haben...

Prinzipiell habe ich diese Typen:
DATE, TIME, BOOLEAN, DOUBLE, LIST_SINGLE, LIST_MULTIPLE, INTEGER, LONGTEXT, PRICE, TEXT, HTML

Bis auf DATE und TIME speichere ich alles in ein String:

Code:
    // Value
   @Column(name = "field_value", nullable = true)
   private String fieldValue = null;
  
   // Value für Dates
   @Column(name = "field_value_date", nullable = true)
   private Date fieldValueDate = null;

Frage1: Kann ich das so machen?
Oder sollte ich wirklich für jeden Datentyp ein Feld anlegen?

also:
- fieldValueBoolean (Datentyp boolean)
- fieldValueDouble (Datentyp Double)


- DATE und TIME sind eines
- PRICE und DOUBLE sind eines
- LIST_SINGLE und LIST_MULTIPLE kann man alle als String abspeichern

Kann man noch was zusammenfassen?

Danke für jede Hilfe
 

mihe7

Top Contributor
Frage1: Kann ich das so machen?
Machen kann man alles - wie oft und ob es von Erfolg gekrönt ist, ist eine andere Sache ;)

Die Frage würde ich mal dahingehend interpretieren, ob es sinnvoll ist, es so zu machen. Das wiederum hängt von den Anforderungen ab.

Theoretisch könntest Du hergehen und alles als Key-Value-Paare oder in einem String speichern (JSON/XML).
 

beta20

Top Contributor
Theoretisch könnte ich das so machen:
-> 4 Datenbankfelder, die je nach Datentyp befüllt werden

@Column(name = "field_value_date", nullable = true)
private Date fieldValueDate

DATE,
TIME

@Column(name = "field_value_boolean", nullable = true)
private boolean fieldValueBoolean

BOOLEAN


@Column(name = "field_value_number", nullable = true)
private double fieldValueNumber

DOUBLE,
INTEGER
PRICE

@Column(name = "field_value_text", nullable = true, longtext=true)
private String fieldValueText

LONGTEXT
TEXT
HTML
LIST_SINGLE
LIST_MULTIPLE

Ist dies so sinnvoll?
 

Thallius

Top Contributor
Da wir nicht wissen wozu das Ganze überhaupt gut sein soll können wir die Frage auch nicht beantworten. Aus reiner 40 Järiger Erfahrung würde ich erstmal sagen das ist Nonsens aber wer weiß vielleicht bist du ja 1 von 1000000 die so einen Sonderfall unbedingt benötigen...
 

beta20

Top Contributor
Es geht darum, dass der Anwender selbst sich ein Webformular genierieren kann, in dem er verschiedene Arten auswählen kann (DropDown Liste, Textfeld, SelectionBox etc.).

Es gibt zwei Entitäten
a) FieldType - Speicherung des Typs (Textfeld usw)
b) FieldInput -> Speicherung der Eingabe (in den oben genannten Feldern, fieldValueDate....)

FieldType hat einen eindeutigen Namen.
Abhängig vom Namen wird geschaut, welcher Datentyp es sein soll.
Davon abhängig wird dann die Eingabe in fieldValueDate, fieldValueBoolean etc geschrieben....
 

temi

Top Contributor
Du könntest z.B. eine Tabelle mit dem Feldnamen und dem Feldtypen machen und für jeden Feldtypen eine weitere Tabelle, die einen Fremdschlüssel auf die erste Tabelle hat (und natürlich den Wert des Feldes).
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Ich verstehe das Problem immer noch nicht richtig. Das Ergebnis ist ein Webformular mit X Elementen die verschiedene Datenformate haben. Warum erstellst du dann nicht einfach eine Tabelle die für jedes Element eine Spalte hat? Wäre jetzt der einfachste Aufbau.
 

beta20

Top Contributor
Du könntest z.B. eine Tabelle mit dem Feldnamen und dem Feldtypen machen und für jeden Feldtypen eine weitere Tabelle, die einen Fremdschlüssel auf die erste Tabelle hat (und natürlich den Wert des Feldes).
OK, aber was für einen wirklichen Mehrwert hat das anstatt eine Tabelle mit 4 Felder zu haben, eines ist gefüllt, die anderen 3 sind dann leer? Es ist relativ gering, dass in Zukunft weitere Datentypen hinzukommen...
 

beta20

Top Contributor
Warum erstellst du dann nicht einfach eine Tabelle die für jedes Element eine Spalte hat? Wäre jetzt der einfachste Aufbau.
Mache ich doch....
FieldType -> ist die Tabelle
Darüber gibt es eben noch: Formular

Beziehung
Formular 1....n FieldType

Wie gesagt, das Problem sind die verschiedenen Datentypen und wie diese in der DB gespeichert werden
 

mihe7

Top Contributor
Damit meine ich, inwiefern die Anwendung die Daten verarbeiten muss.

Gehen wir beispielsweise im Frontend von einer JS-Anwendung aus, die per REST+JSON Daten mit dem Backend austauscht. Sofern die Daten im Backend nicht verarbeitet werden müssen, spricht nichts dagegen, sie unverändert zu speichern und wieder an das UI zu liefern.
 

beta20

Top Contributor
Verstehe ich immer noch nicht so ganz...
Die Daten liegen in der Datenbank (jeweils in den Columns, je nach Datentyp)...

Z.B. Beim Speichern in Weboberfläche wird eben zunächst beim Laden der Seite geprüft, welche Felder auf der Seite angezeigt werden und in einer Liste gespeichert. Wird das Feld geändert, wird durch dem eindeutigen technischen Namen pro Feld eben das entsprechende Feld in der Datenbank (Input Entity) geupdated.

Ebenfalls beim Ausfüllen eines Webformulars wird jeweils geprüft, ob das Feld (auch anhand dem technischen Namen ermittelt) bereits vorhanden ist. Wenn ja, wird der Wert in diesem Feld in der Input Entity gespeichert...

Wie gesagt: das Grundproblem ist wie ich mit den unterschiedlichen Datentypen umgehe...
 

mihe7

Top Contributor
Verstehe ich immer noch nicht so ganz...
Machen wir es mal anders: nehmen wir mal eine Rechnung her. Die hat eine Anschrift für den Empfänger. Die Anschrift besteht natürlich aus ein paar Zeilen, datuner Straße/Postfach, PLZ, Ort und Land.

Das kann man natürlich so speichern. Die Frage ist, warum? Was passiert mit der Anschrift in der Anwendung, außer, dass sie auf ein Rechnungsformular gedruckt wird oder anders gefragt: spricht etwas dagegen, die Anschrift einfach komplett als Zeichenkette zu speichern und zu verwenden?

Das kann man übertragen: ist das Backend einfach nur ein Speicher für ein Dokument, dessen Format im Frontend bekannt ist oder muss das Backend mit den Daten umgehen können?
 

Thallius

Top Contributor
Du sollst deine Tabelle erst anlegen wenn klar ist wie das Formular aussieht. Dann brauchst du nicht unnötige Spalten für nicht vorhandene Datentypen anlegen.

Also:

User erstellt Formular und sagt speichern. Dann erstellst du eine Tabelle mit genau den Spalten Je nachdem was für Elemente der User in das Formular gepackt hat.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
H String und Zahl Java Basics - Anfänger-Themen 10
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
Y Zahl im String hochzählen Java Basics - Anfänger-Themen 13
E String bestehend aus Ziffern in Zahl verwandeln Java Basics - Anfänger-Themen 3
J Überprüfen ob String eine Zahl ist Java Basics - Anfänger-Themen 2
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
T Ein String eine Zahl zuweisen Java Basics - Anfänger-Themen 15
R String Zahl um 1 dekrementieren Java Basics - Anfänger-Themen 12
D Zahl in einem String finden Java Basics - Anfänger-Themen 4
W Schlüsselworte Methode, die die grösste Zahl aus einem String ermittelt und zurückgibt Java Basics - Anfänger-Themen 8
N Maximale Zahl in einem String Java Basics - Anfänger-Themen 8
B Unbekannte Zahl aus einem String umwandeln Java Basics - Anfänger-Themen 15
K String und Zahl in Methode übergeben Java Basics - Anfänger-Themen 11
T String splitten beim wechsel vom buchstabe zu zahl! Java Basics - Anfänger-Themen 8
C String in Zahl und umgekehrt Java Basics - Anfänger-Themen 5
S Datentypen Zahl in String Java Basics - Anfänger-Themen 31
T Prüfen, ob ein String eine Zahl ist Java Basics - Anfänger-Themen 10
N an einem String ein zahl anhengen Java Basics - Anfänger-Themen 6
C Binärzahl vom Typ String in eine Zahl vom Typ Integer umwandeln Java Basics - Anfänger-Themen 4
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
G testen ob in String zahl Java Basics - Anfänger-Themen 10
P Zahl einfügen in String? Java Basics - Anfänger-Themen 9
N Zahl aus einem String finden und als Integer speichern Java Basics - Anfänger-Themen 3
M String: beginnt mit Buchstabe oder Zahl? Java Basics - Anfänger-Themen 18
G überprüfen ob string eine zahl enthält Java Basics - Anfänger-Themen 6
F Zahl aus String (Buchstaben und Zahl) extrahieren Java Basics - Anfänger-Themen 17
S Zahl von String Trennen Java Basics - Anfänger-Themen 4
H zufalls string und zahl erzeugen Java Basics - Anfänger-Themen 14
R in einem string nach einer zahl suchen und auslesen...... Java Basics - Anfänger-Themen 3
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
B Überprüfung dass Zahl nur aus 0,1 besteht Java Basics - Anfänger-Themen 2
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
B 49-bit-zahl mit genau 6 Einsen bauen? Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M zahl raten Java Basics - Anfänger-Themen 1
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
I Zahl aufrunden (Zeit) Java Basics - Anfänger-Themen 43
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
R Fortlaufende Zahl Java Basics - Anfänger-Themen 3
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
HelpInneed Zahl. Java Basics - Anfänger-Themen 2
R Perfekte Zahl Java Basics - Anfänger-Themen 8
D Mittlerste Zahl Java Basics - Anfänger-Themen 17
D Grösste Zahl in einer Folge herausfinden. (ULAM) Java Basics - Anfänger-Themen 9
Poppigescorn Häufigkeit einer zahl zählen Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
J Verdoppeln einer Zahl (in dem Fall Münzen) Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
Abraham42 Prozentsatz einer Zahl mehrmals Java Basics - Anfänger-Themen 2
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
S Zahl eingeben Java Basics - Anfänger-Themen 8
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
J Die größte Zahl anzeigen Java Basics - Anfänger-Themen 19
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
L Erhöhung der Zahl Java Basics - Anfänger-Themen 3
F Negative Zahl erzwingen Java Basics - Anfänger-Themen 3
N Eine Zahl solange teilen bis es nicht möglich ist und die Ergebnisse ausgeben Java Basics - Anfänger-Themen 23
T Eulersche Zahl e Java Basics - Anfänger-Themen 5
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
A Gewürfelte Zahl ausgeben Java Basics - Anfänger-Themen 10
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben