2016-07-01 11 views
0

Ich habe eine Nummer von EditTexts auf einer Benutzeroberfläche, wo der Benutzer Daten eingibt. Die Daten werden in einem SQLite database gespeichert.Android & SQLite: Wird eine leere Zeile Datenbankprobleme verursachen?

Der Benutzer kann einige der EditTexts leeren (keine Daten eingegeben). Ich habe in der Datenbank bestätigt, dass die Zeilen für diese EditTexts leer sind. Meine Frage ist: für die Integrität der Datenbank, sollte ich eine leere Zeichenfolge eingeben (else Code unten) für die leere EditTexts? Wenn ja, wie hilft das Eingeben der leeren Zeichenfolge?

Möglicher Code für den Rohling EditTexts:

... 
et_name = (EditText) findViewById(R.id.et_name); 

@Override 
public void onClick(View v) { 
    UserData userData = new UserData(); 
    if(!et_name.getText().toString().isEmpty() { 
     userData.name = et_name.getText().toString(); 
    } else { 
     userData.name = ""; 
    } 
    ... 

Antwort

1

Für die Integrität der Datenbank ist es konzeptionell besser keinen Wert für die Spalte festgelegt oder auf andere Weise festgelegt es auf null. Null gibt an, dass kein Wert festgelegt ist, und in diesem Fall hat der Benutzer tatsächlich keinen Wert angegeben. Wenn Sie null angeben, wird deutlich, dass kein Wert angegeben wurde und in SQL-Abfragen einfacher nachgesehen werden kann. Das Speichern einer leeren Zeichenfolge verwendet ebenfalls Speicherplatz, den null nicht hat.

Dies ist jedoch keine feste Regel. Wenn das Speichern eines Wertes als leere Zeichenfolge Vorteile für Ihren Code und Ihre Logik bringt, können Sie dies tun.

+0

Verstanden. Ich schätze die klare und prägnante Antwort. Antwort abgestimmt und angenommen. Eine zusätzliche Frage: Für meinen Anwendungsfall sieht das Speichern von NULL wie der Weg aus. Wenn der Benutzer den EditText leer gelassen hat (seine Länge ist Null), dann verwenden Sie die putNull-Methode im ContentValues-Codeabschnitt der DatabaseHelper-Datei, um "null" in einer SQLite-Datenbank zu speichern. – AJW

+1

Ja, ich glaube, das ist der richtige Weg. – NigelK

Verwandte Themen