Question

SQLite utilise quelque chose que les auteurs appellent « Manifest Si vous tapez », ce qui signifie essentiellement que SQLite est typé dynamiquement. vous pouvez stocker une valeur varchar dans une colonne « int » si vous voulez

Ceci est une décision de conception intéressante, mais chaque fois que je l'ai utilisé SQLite, je l'ai utilisé comme un SGBDR standard et traité les types comme si elles étaient statiques. En effet, je ne l'ai jamais voulu des colonnes dynamiquement tapées lors de la conception de bases de données dans d'autres systèmes.

Alors, quand est cette fonctionnalité utile? Quelqu'un at-il trouvé un bon usage pour en pratique qui n'aurait pu être fait tout aussi facilement avec des colonnes typés statiquement?

Était-ce utile?

La solution

Il est vraiment juste des types plus facile à utiliser. Vous n'avez pas à vous soucier de la taille ce domaine doit être à un niveau de base de données plus ou combien de digets vos intergers peut être. Plus ou moins, il est un «pourquoi pas? chose.

De l'autre côté, le typage statique dans SQL Server permet au système de recherche et d'index mieux, dans certains cas, beaucoup mieux, mais pour la moitié de toutes les demandes, je doute que l'amélioration des performances de base de données importerait, ou leur performance est pauvre 'pour d'autres raisons (tables temporaires créées chaque sélectionner, sélectionne exponentielle, etc.).

J'utilise SQLite tout le temps pour mes projets .NET comme un cache client, car il est trop facile d'utiliser aussi. Maintenant, s'ils ne peuvent obtenir d'utiliser GUIDs le même que le serveur SQL je serais un campeur heureux.

Autres conseils

typage dynamique est utile pour stocker des choses comme les paramètres de configuration. Prenez le Registre de Windows, par exemple. Chaque touche est un peu comme avoir une table SQLite de la forme:

CREATE TABLE (Paramètres de texte Nom de clé primaire, valeur);

où la valeur peut être NULL (REG_NONE) ou un ENTIER (REG_DWORD / REG_QWORD), TEXT (REG_SZ) ou blob (REG_BINARY).

En outre, je suis d'accord avec les Jasons sur l'utilité de ne pas appliquer une taille maximale pour les chaînes. Parce que la plupart du temps, ces limites sont purement arbitraire, et vous pouvez compter sur trouver un jour une chaîne de 32 octets qui doit être stocké dans votre VARCHAR (30).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top