Tipos de datos utilizados en SQLite
Estoy confundido qué declarar como tipo de datos en SQLite para lo siguiente: 1.email 2.phone number 3.password (Algunos artículos me parece que utilizan String en lugar de int para el número de teléfono y la contraseña, ¿por qué es así?)
- Acceso y almacenamiento de gran cantidad de datos desde el servidor mysql
- Leer datos de sqlite donde nombre de columna contiene espacios en android
- Forma preferida de actualizar sqlite db en android
- Adición de filas a una base de datos sqlite mediante un bucle (Phonegap)
- ¿Estoy bebiendo la plataforma / hardware?
- ¿Puedo almacenar de forma segura una cadena totalmente aleatoria (cualquier valor de 16 bits) en un SQLiteDB?
- Mueva el cursor a la fila por una de las columnas
- No se puede actualizar el campo TextView dentro de RecyclerView
- SQLite de Android Cursor fuera de límites de excepción en SELECT count (*) FROM table
- Eliminar todas las filas de una tabla, lanza nullpointer
- SQLiteOpenHelper - ¿Cómo se crea la base de datos?
- Envío de SQLite db al servicio web
- Cómo insertar a granel de Json a Sqlite en Android
Existen fundamentalmente 5 tipos de tipos de datos en SQLite:
1.) NULL 2.) BLOB 3.) INTEGER 4.) REAL 5.) TEXTO
Puede leerlos en la siguiente página SQLite Datatypes .
En cuanto a su pregunta :
1.) Como el Email
puede contener caracteres alfanuméricos y especiales, este campo debe ser declarado como TEXT
.
2.) Para un número de teléfono, usted tiene que decidir cómo almacenar los números. Por ejemplo, uno de los chicos querría que su número de teléfono se almacenara como
4567890
Mientras que otro individuo quisiera que el mismo número fuera almacenado como
456-7890
En el first case
, el datatype would be INTEGER
mientras que en el second case
sería TEXT
ya que el segundo caso consistiría en un carácter especial.
3.) Para la password
, utilice TEXT
ya que puede tener cualquier carácter. Asegúrese de cifrarlo sin embargo.
Espero eso ayude. 🙂
La razón detrás de usar la cadena es que, Sqlite se hizo mucho flexible y dinámico.
Compruebe este enlace: http://www.sqlite.org/datatype3.html
Los dos primeros párrafos responden a todas sus preguntas.
Utilice String para los tres.
String permite el uso del conjunto de caracteres completo, incluyendo minúsculas, mayúsculas, números y caracteres especiales. Cada uno de los ejemplos que da (correo electrónico, número de teléfono y contraseña) utilizará elementos del conjunto de caracteres completo. (Email '@', phone '-' & '()' y las contraseñas son más efectivas cuanto mayor sea el conjunto de caracteres elegido.)
Las cadenas también pueden ser analizadas con expresiones regulares para validarlas y lograr una amplia conformidad con la base de datos. Por ejemplo, puede elegir un formato coherente para los números de teléfono de '++ 64 4 12345678' y utilizar RE's para lograr ese estado antes de guardarlo en la base de datos. Igualmente puede usar RE para quitar todos los caracteres adicionales y guardar el número de teléfono como un int.
Las contraseñas que utilizan sólo int, tienen una base de caracteres de 10 caracteres, el juego de caracteres completo tiene (26 + 26 + 10 + 33) = 95 caracteres. Si su contraseña tiene 8 caracteres, es decir 10 ^ 8 o 100,000,000 de combinaciones (trivial a fuerza bruta) o 95 ^ 8 que un heck de mucho más (conseguir mucho más difícil a la fuerza bruta).