Citation:
- Table type qui contiendra les différents types de pièces d'une maison (cuisine, chambre, salon, db ...)
Puisqu'il s'agit de types de pièces, j'appellerais la table type_piece. Où, puisque tu sembles vouloir utiliser l'anglais, "room_type".
Et du coup, plutôt que zoneName qui n'a plus aucun rapport avec le nom de la table, appelle cette colonne "roomTypeLabel" ou "roomTypeName".
À quoi sert le timestamp dans toutes les tables ?
En plus, comme timestamp est un mot réservé du langage SQL, il ne faut appeler une colonne ou une table ainsi.
Citation:
- Table hard qui contiendra le nom du module, sa clé de cryptage et le type de pièce dans laquelle il est situé.
Pourquoi "hard" et pas "module" ? :roll:
Comme j'ai dit précédemment, il ne me semble pas indispensable que la clé étrangère référençant le type de pièce participe à la clé primaire de cette table.
Dans MySQL Workbench, utilise plutôt la "non-identifying relationship".
Citation:
- Table zone qui contiendra le nom d'un zone, l'id des modules de cette zone.
Une zone est une zone mais comme il peut y avoir plusieurs dans cette zone, si tu considères qu'un module n'est que dans une seule zone, il faut mettre la clé étrangère référençant la zone dans la table hard.
Si par contre un module peut faire partie de plusieurs zones, alors il faut rétablir la table associative.
Citation:
Maintenant la question de logique:
- Un "type" peut être affecté à un ou plusieurs module "hard" (relation 1:n)
- Un module "hard" peut être affecté à une ou plusieurs "zone" (relation 1:n)
Comme dit dans mon précédent message, tes règles de gestion sont incomplètes. Il y manque à chaque fois la contraposée :
- Un "type" peut être affecté à un ou plusieurs module "hard" et un module n'est affecté que d'un seul type.
- Un module "hard" peut être affecté à une ou plusieurs "zone" et une zone peut être couverte par plusieurs modules.
En vertu de cette dernière règle de gestion, tu dois rétablir la table associative.
Le MCD qui correspond à ces règles de gestion :
roomType -0,n----affecter----1,1- module -0,n----couvrir----0,n- zone