Conception selon la méthode Merise — Dictionnaire des données · MCD · MLD · MPD
Inventaire de toutes les données manipulées par l'application, avec leur type et leurs contraintes.
| Code | Désignation | Type | Contraintes |
|---|---|---|---|
| id_film | Identifiant du film | Entier | Clé primaire, auto-incrément |
| titre | Titre du film | Texte (255) | Obligatoire |
| annee | Année de sortie | Entier | Facultatif · entre 1888 et 2100 |
| note | Note personnelle | Réel | Obligatoire · entre 0,5 et 5 par demi-points |
| critique | Avis personnel | Texte long | Facultatif |
| date_visionnage | Date à laquelle le film a été vu | Date | Obligatoire · ne peut pas être dans le futur |
| id_genre | Identifiant du genre | Entier | Clé primaire, auto-incrément |
| libelle | Nom du genre (Sci-Fi, Comédie…) | Texte (100) | Obligatoire · unique |
Deux entités, FILM et GENRE, reliées par l'association APPARTENIR. L'identifiant de chaque entité est souligné.
Un FILM appartient à 0 ou 1 GENRE · Un GENRE regroupe 0 à n FILMs
Passage au modèle relationnel. L'association 1:N est traduite par la migration de la clé du côté (0,n) en clé étrangère dans la relation du côté (0,1). La cardinalité minimale étant 0, la clé étrangère accepte NULL.
| Attribut | Type logique | Rôle |
|---|---|---|
| id_genre | Entier | Clé primaire PK |
| libelle | Texte (100) | Unique UNIQUE |
| Attribut | Type logique | Rôle |
|---|---|---|
| id_film | Entier | Clé primaire PK |
| titre | Texte (255) | — |
| annee | Entier, NULL | — |
| note | Réel | — |
| critique | Texte long, NULL | — |
| date_visionnage | Date | — |
| id_genre | Entier, NULL | Clé étrangère → GENRE(id_genre) FK |
Implémentation SQLite. Les règles de gestion sont traduites en contraintes CHECK, NOT NULL, UNIQUE et REFERENCES.
| Colonne | Type SQLite | Contraintes |
|---|---|---|
| id_genre | INTEGER | PRIMARY KEY AUTOINCREMENT |
| libelle | VARCHAR(100) | NOT NULL · UNIQUE |
| Colonne | Type SQLite | Contraintes |
|---|---|---|
| id_film | INTEGER | PRIMARY KEY AUTOINCREMENT |
| titre | VARCHAR(255) | NOT NULL |
| annee | INTEGER | NULL · CHECK (annee BETWEEN 1888 AND 2100) |
| note | REAL | NOT NULL · CHECK (note BETWEEN 0.5 AND 5.0) |
| critique | TEXT | NULL |
| date_visionnage | DATE | NOT NULL |
| id_genre | INTEGER | NULL · REFERENCES genre(id_genre) |