livre :
dans l'application, il est facile de déterminer tous les genres littéraires définis
(le contenu de cette table) et donc de remplir la liste déroulante
correspondante ;
si on remarque une faute de frappe dans un genre, il suffit de la corriger une
seule fois (dans la table genres) plutôt que devoir parcourir chaque livre
stocké en base de données.
L'enregistrement correspondant à chaque livre contiendra uniquement ce numéro
pour identifier le genre.
Le mot clé PRIMARY KEY donne la clé primaire de la table : en d'autres termes, le
moteur de base de données comprend que ce champ sera utilisé pour faire référence
à un genre et se prépare à optimiser des requêtes qui cherchent un genre à partir de
son identifiant. Une seule clé primaire est autorisée par table. (Il est possible de
demander au moteur d'optimiser d'autres types de requêtes par des index.)
Note > Pour SQLite, le moteur utilisé par Qt Quick, un entier utilisé comme clé
primaire sera automatiquement incrémenté pour chaque nouvelle entrée dans la
table.
La deuxième colonne correspond à la représentation textuelle du genre lui-même,
qui sera présentée à l'utilisateur. Il s'agit donc, en termes SQL, d'un TEXT, une
chaîne de caractères. SQLite gère automatiquement l'encodage du texte inséré.
Une base de données ne peut jamais contenir deux tables avec le même nom : le moteur
d'exécution renvoie alors une erreur. Cependant, au moment de lancer l'application, il
faut vérifier que toutes les tables nécessaires existent. Justement, la norme SQL permet
d'indiquer que la table ne doit être créée que s'il n'en existe pas encore avec ce nom :
CREATE TABLE IF NOT EXISTS genres (
genre_id INTEGER PRIMARY KEY,
genre TEXT
);
Note > D'autres types de données sont possibles que des entiers ou du texte. SQLite
définit également les nombres réels REAL et des données binaires brutes BLOB. La norme
SQL prévoit bon nombre d'autres types, sans qu'ils soient gérés de la même manière
355
Précédent

- 356/494

Suivant