Domanda

SQLite utilizza qualcosa che gli autori chiamano " manifesto Digitando ", che sostanzialmente significa che SQLite è dinamicamente tipizzato:. è possibile memorizzare un valore in una colonna varchar "int" se si desidera

Questa è una decisione design interessante, ma ogni volta che ho usato SQLite, ho usato come uno standard RDMS e trattato i tipi come se fossero statici. In realtà, non ho mai nemmeno voluto per le colonne dinamicamente tipizzati nella progettazione di basi di dati in altri sistemi.

Così, quando è questa caratteristica utile? Qualcuno ha trovato un buon uso per esso, in pratica, che non si sarebbe potuto fare con la stessa facilità con colonne staticamente tipizzati?

È stato utile?

Soluzione

E 'davvero solo rende i tipi più facile da usare. Non è necessario preoccuparsi di quanto è grande questo campo deve essere ad un livello di database più, o quante digets tuoi intergers può essere. Più o meno si tratta di un 'perché no?' cosa.

D'altra parte, tipizzazione statica in SQL Server permette al sistema di ricerca e l'indice migliore, in alcuni casi molto meglio, ma per la metà di tutte le applicazioni, dubito che i miglioramenti delle prestazioni del database sarebbe un problema, o la loro performance è 'poveri 'per altri motivi (tabelle temporanee vengono creati ogni selezionare, seleziona esponenziali, ecc).

Io uso SQLite tutto il tempo per i miei progetti .NET come cache del client, perché è troppo facile troppo usare. Ora, se si può ottenere solo in modo da utilizzare lo stesso GUID SQL server sarei un camper felice.

Altri suggerimenti

tipizzazione dinamica è utile per memorizzare cose come impostazioni di configurazione. Prendere il Registro di Windows, per esempio. Ogni chiave è un po 'come avere una tabella SQLite della forma:

CREATE TABLE (Impostazioni di testo Nome PRIMARY KEY, value);

dove valore può essere nullo (REG_NONE) o un intero (REG_DWORD / REG_QWORD), TESTO (REG_SZ), o BLOB (REG_BINARY).

Inoltre, io sono d'accordo con i Jasons sull'utilità di non imporre una dimensione massima per le stringhe. Poiché gran parte del tempo, questi limiti sono puramente arbitrario, ed è possibile contare su un giorno di trovare una stringa di 32 byte che deve essere memorizzato nel VARCHAR (30).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top