checkbox in datenbank

hamid

Bekanntes Mitglied
hallo.

wie kann man am besten checkbox informationen in der datenbank abspeichern? kennt jemand gute tutorials im web???die meißten sind nicht so gut...

ich hab 3 checkboxen und ein feld in der DB. wenn ich alle 3 checkboxen anwähle dann gibt es probleme die daten in DB abzuspeichern..

wie kann man das am besten lösen?

danke
 
T

Tomate_Salat

Gast
Man speichert doch keine checkbox. Man speichert den Wert und der ist ein Boolean. Also würde ich in der Datenbanktabelle für die checkbox ein Boolean-feld vorsehen.
 
T

Tomate_Salat

Gast
1 Feld? Dann sehe das so in etwa aus [c]1,0,1[/c]...lass soetwas bleiben, pack nicht mehrere Datensätze in ein Feld. Nimm 3 Felder
 

ARadauer

Top Contributor
3 checkboxen... ich würd 3 felder nehmen... und dann mit 1,0 oder true, falsch schalten.
Im Grunde sind ja die Checkboxen unabhängig voneinander zu wählen...

Was anderes wäre bei radioboxen wo immer nur ein wert ausgewählt werden kann.
 
T

Tomate_Salat

Gast
Np ;-) . Notfalls gibts hier noch genug andere, die dir sicher weiterhelfen können.
 

hamid

Bekanntes Mitglied
Im Grunde sind ja die Checkboxen unabhängig voneinander zu wählen...


ich hab sowas hier. jede checkbox heisst anders. ist das richtig so? oder müssen alle gleich heissen?

HTML:
<form:checkbox path="KATEGORIEN_EFFIZIENT"/>
    
    Effizienz 
    <form:checkbox path="KATEGORIEN_QUALI"  />
    Qualit&auml;t 
    <form:checkbox path="KATEGORIEN_UMWELT"  />
    Umwelt 
    
    <form:checkbox path="KATEGORIEN_ASI" />
    ASI 
    <form:checkbox path="KATEGORIEN_ORDNUNG" />
    Ordnung<br />
 

fastjack

Top Contributor
Das hört sich eher nach bestimmten Typen an, die Du einem Objekt gibst. Da man anscheinend einem Objekt mehere Typen der gleichen Klasse zuweisen kann, würde ich die dann mittel NM-Relation speichern: Objekt -> NM -> Type

Tabelle Typ
-----------
ID TYP
1 Effizienz
2 Qualit&auml;t
3 Umwelt
4 ASI
5 Ordnung

Tabelle Objekt (oder irgendetwas, was diesen Typen haben soll)
--------------
ID
1
2
3

NM-Tabelle (Object -> Typ)
---------------------------
OBJEKT TYP
1 1
1 2
1 3
2 3
3 1

Du brauchst eventuell noch Logik (Programm oder DB) um das doppelte speichern ein und desselben Typs zu einem Objekt zu verhindern.
 

hamid

Bekanntes Mitglied
hi fastjack.

geht das nicht einfacher? ich möchte nur die werte von den checkboxen in die DB speichern. mehr nicht ! ich benutze DERBY DB von Apache.
 

fastjack

Top Contributor
Natürlich kannst Du auch zu jedem Typen true/false speichern. Du hast dann aber eventuell mehr Aufwand, wenn mehr Typen dazukommen, oder welche entfallen.
 

hamid

Bekanntes Mitglied
mm..irgendwann fuzt dat net so..bekomme komischerweise auch keine fehlermeldung...

also ich hab in der DB.

4 felder jeweils mit dem smallint

KATEGORIEN_EFFIZIENT SMALLINT,
KATEGORIEN_QUALI SMALLINT,
KATEGORIEN_UMWELT SMALLINT,
KATEGORIEN_ASI SMALLINT,
KATEGORIEN_ORDNUNG SMALLINT,

in meine domain habe ich

4 variablen

jeweils vom typ int mit den settern und getter methoden.


ich weiss nicht wie ich das ganze debuggen soll um meinen fehler heraus zubekommen.


kannst du mir einen tipp geben?

danke
 

hamid

Bekanntes Mitglied
mein problem ist die logik...wenn meine db felder den typ smallint haben, ist es doch ok wenn in der logik die varibalen vom typ int sind richtig?
 

fastjack

Top Contributor
In Java machst Du daraus Boolean-Variablen. Beim Einlesen schaust Du einfach, ob eine 0 im Feld ist, dann wird daraus false, bei 1, -1, oder was Du sonst so festlegst für true, machst du true daraus.
Beim Speichern gehst Du einfach andersrum vor.
 

hamid

Bekanntes Mitglied
ok danke...glaub es funzt jetzt mit checkbox...das problem war nur das ich in java statt boolean, integer hatte :p

was muss ich bei radiobuttons beachten um die werte korrekt in der DB zu speichern?
 
T

Tomate_Salat

Gast
Für Radios hast du ein Feld. Jetzt musst du dir halt überlegen, wie du später das ganze wieder idendifzierst. Am elegantesten wäre wohl: du hast eine Tabelle mit Radio-Beschreibungen und zu jede Beschreibung hat eine eigene ID. Dann speicherst du nur die ID im der Auswahl im Feld:

Code:
tabelle antworten:
ID | ANSWER
-------------
1  | JA
2  | NEIN
3  | VLLT

tabelle anytable:
antwort|datum
---------------
1|heute     //verweist dann auf JA
2|gestern  // verweist dann auf NEIN

Ansonsten würde ich im Programm die radio-bezeichner in einer Liste,Array o.ä. ablegen und dann deren indexnummer zur idendifikation nutzen.
 

hamid

Bekanntes Mitglied
ist mir wieder zu kompliziert.

kann ich nicht wieder wie bei der checkbox die felder als smallint speichern und in java als boolean....analog zu checkbox
 
T

Tomate_Salat

Gast
was ist daran kompliziert?

Natürlich kannst du es auch so machen, davon rate ich aber ab. Mal abgesehen von Datenbankdesign ist es einfach zu fehleranfällig! Ein SQL ist mal falsch oder jmd hat händisch da gepfuscht und zack steht da mal eine 1 zu viel drin.
 

fastjack

Top Contributor
Denk auch an den Wartungsaufwand bzw. Updateaufwand den Di hast, falls sich an den jetzt "festen" Typen doch mal was ändert.
Persönlich würde ich das lieber handfest mit den Typen machen. Da hast Du jetzt ein wenig Aufwand, dafür kannst Du sie später viel besser warten und in der DB wirds auch übersichtlicher aussehen.
 
T

Tomate_Salat

Gast
Da hast Du jetzt ein wenig Aufwand, dafür kannst Du sie später viel besser warten und in der DB wirds auch übersichtlicher aussehen.

...richtig. Alles was man nur im entferntesten erweitern könnte....mach es variabel! Vllt wirst du es für das jetztige projekt nicht brauchen, aber glaub mir. Es wird das Projekt kommen, wo du alles fest gemacht hast und du wirst es bereuen. Den Fehler hab ich gemacht und jetzt kommt die returkutsche(wohl eher returLKW).
 

Ähnliche Java Themen


Oben