Lorsque l'on crée des enregistrements dans notre table, il est important de pouvoir les identifier de manière unique pour les conditions de récupération des modifications et des suppressions. En effet, si on utilise le champ titre, il peut être amené à changer dans le futur. Il nous faut donc une valeur qui sera invariante tout au long de la vie de notre enregistrement. Pour remplir ce besoin, on pourra se baser sur les clés primaires.
CREATE TABLE recipes (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
title VARCHAR(150) NOT NULL,
slug VARCHAR(150) NOT NULL,
date DATETIME,
duration INTEGER DEFAULT 0 NOT NULL,
);
Ces clés constituent un identifiant unique qui sera assigné à chaque ligne et qui permettra ensuite d'y faire référence plus simplement. Ces clés primaires offrent aussi l'avantage d'être indexée par le SGBD et permettent une récupération plus rapide lorsqu'elles sont utilisées dans les condition.
Il sera aussi possible de préciser que cette valeur s'incrémentera de manière automatique afin de ne pas avoir à préciser manuellement la clé lors de chaque insertion.
En plus de la clé primaire, il sera possible d'indexer d'autres champs qui sont souvent utilisés comme condition de récupération. On pourra aussi y adjoindre des contraintes d'unicité pour éviter les duplications.
CREATE UNIQUE INDEX idx_slug ON recipes (slug)