Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation > Schéma
Schéma Modélisation Relationnelle (Dépendances Fonctionnelles, Formes Normales, Entité-relation, MCD, MPD ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2012, 12h01   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 15
Points : 1
Points : 1
Par défaut MCD outil gestion de configuration réseau

Bonjour,

J'ai dans mon cadre de projet d'etudes à développer un outil en PHP/MYSQL (présenté ici)
J'ai modélisé le MCD et j'aurais aimé avoir des avis concernant sa construction.

J'ai également quelques questions :

1- Concernant les entités PAYS et CHANNEL

L'entité channel stocke la liste des canaux wifi avec leurs fréquences.
L'entité pays possède la limite du canal à ne pas dépasser.
Et je voudrais à l'aide d'une requête pouvoir récupérer la liste des canaux wifi et leurs fréquences utilisables pour ce pays.
D'après vous, est-ce que ma méthode pour gérer cette contrainte est juste ? En existe-il une meilleure ?

2- Relation entre AP_MODEL et AP_TEMPLATE

AP_MODEL désigne un modèle de borne wifi.
AP_TEMPLATE désigne le fichier de configuration 'type' pour ce model de borne.
J'ai une cardinalié (1,1;1,1), ne serait-il pas plus juste de mettre le chemin du fichier de configuration directement dans l'entité AP_MODEL ?

N’hésitez pas si vous voyez des choses louches
Images attachées
Type de fichier : jpg MCD.jpg (113,9 Ko, 13 affichages)
benderR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 16h20   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Citation:
Envoyé par benderR Voir le message
1- Concernant les entités PAYS et CHANNEL

L'entité channel stocke la liste des canaux wifi avec leurs fréquences.
L'entité pays possède la limite du canal à ne pas dépasser.
Et je voudrais à l'aide d'une requête pouvoir récupérer la liste des canaux wifi et leurs fréquences utilisables pour ce pays.
D'après vous, est-ce que ma méthode pour gérer cette contrainte est juste ?
Bonjour,

D'après votre MCD :
- un pays possède de 1 à plusieur channel (est-ce logique pour la relation 1 ?)
- une channel peut être attribuée à 0 ou n pays.

De ce fait, comment voullez-vous tester cette limite ? Impossible

Donc le model devrai plus se transformer en :
Pays-0,n------Attribue-------1,1-Channel

Pour gérer, au niveau de la base, la limite il faudrait implémenter une contrainte check => non supportée par MySql.

(Pour la meilleur solution je laisserai quelqu'un d'autre répondre).

Citation:
2- Relation entre AP_MODEL et AP_TEMPLATE

AP_MODEL désigne un modèle de borne wifi.
AP_TEMPLATE désigne le fichier de configuration 'type' pour ce model de borne.
J'ai une cardinalié (1,1;1,1), ne serait-il pas plus juste de mettre le chemin du fichier de configuration directement dans l'entité AP_MODEL ?
Logiquement oui, sauf si une de vos relation tombe à 0,1 (en particulier celle de AP_TEMPALTE) ou 0,n.

Est-il possible d'avoir plusieurs version de template pour un même modèle par exemple ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 17h46   #3
Invité de passage
 
Inscription : octobre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 15
Points : 1
Points : 1
Par rapport à l'entité CHANNEL et COUNTRY, je crée en quelque sorte la contrainte avec le code PHP et ca fonctionne.
En gros je voudrais récupérer la liste des canaux wifi utilisable pour le pays sélectionné. Si quelqu'un à quelque chose de plus propre à proposer je prend volontiers !

Concernant, AP_MODEL et AP_TEMPLATE, il n'est pas possible d'avoir plusieurs versions de template. Donc je pense tout mettre dans une seule entité.
benderR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 12h28   #4
Invité de passage
 
Inscription : octobre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 15
Points : 1
Points : 1
Je viens de remarquer quelque chose au niveau de ce MCD.
Dans la pratique je voudrais pouvoir associer un SSID à un pays.
Mais si je peuple ma BDD, il est impossible d'avoir 2 SSID ayant le même nom malgré qu'ils soient associés à un pays différent.

Faut-il que je définisse country_name dans l'entité SSID en seconde clé primaire ?

Ou que je modélise ces entités d'une autre manière?
benderR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h17   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Bonjour,

Alors le problème vient plutot du fait que vous ayez choisit une mauvaise clef.

Pour la totalité de vos tables prendre comme clef primaire un attribut significatif (edit : ou naturel ?) est une mauvaise idée.

Que se passera-t-il le jour où vous voulez renomer un SSID, un pays ou ...?

Lisez cet article : http://sqlpro.developpez.com/cours/clefs/
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h08   #6
Invité de passage
 
Inscription : octobre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 15
Points : 1
Points : 1
Concernant le fait que j'ai pris un attribut significatif (ssid_name) comme clé primaire est qu'il n'est pas possible d'avoir le même ssid_name pour 1 pays donné.
En revanche il est possible qu'il y ait 2 ou plus de ssid_name identiques mais associés à des pays différents.

C'est pour cela que je pensait mettre la clé étrangère (country_name) de l'entité ssid en seconde clé primaire.
benderR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h29   #7
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Oki,

Ca ne change rien au problème que mettre comme clef primaire un varchar c'est une mauvauise idée d'autant plus que ce nom peut changer.

Donc niveau MCD :
Country-1,1----Possede-----0,n-SSID

=>
- Un pays possède un seul SSID
- Un SSID peut être associé à un ou plusieurs pays

C'est bien ça ?


Ce qui ce transforme au niveau du MPD :
SSID(ssi_id, ssi_name, ....)
Country(cou_id, # ssi_id, cou_name, ......)
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 14h59   #8
Invité de passage
 
Inscription : octobre 2011
Messages : 15
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 15
Points : 1
Points : 1
Ce que je voudrais c'est plutot ca :

COUNTRY 1,n-----ASSOCIER-----1,1 SSID
- 1 pays peut posséder 1 ou plusieurs SSID
- 1 SSID est associé à 1 et 1 seul pays

Ce que tu as proposé ne me permet pas d'avoir plusieurs SSID pour 1 pays.

Mais si j'utilise ta méthode cela permet d'avoir plusieurs ssid d'un meme nom pour 1 pays donné.
Or, je ne veut pas que ce soit possible dans ce cas mais plutot dans 2 pays différents.
Exemple :

id:1 ,nom:wifi1 ---> associé à FRANCE (avec certains parametres propres au pays)
id:2 ,nom:wifi1 ---> associé à BELGIQUE (avec certains parametres propres au pays)

mais je ne veut pas qu'il soit possible d'avoir deux fois le 'wifi1' pour la france.
benderR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 20h44   #9
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
Dans ce cas votre choix de modélisation est adapté et pour modéliser cette problématique il faudra rajouter une contrainte d'unicité (unique key sous MySql) sur le couple {coutry_id, ssid_name}

Country_id étant une clef étrangère qui réfère votre table Country.

Par contre, je ne transformerai pas ce couple en primary key, vu qu'un renommage du ssid_name serai vraiment fastidieux à réaliser.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h15.


 
 
 
 
Partenaires

Hébergement Web