Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1317 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [merise]association réflective

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[merise]association réflective

n°1262983
thesmiling​face
Earth Disasters Fundation
Posté le 09-12-2005 à 18:57:35  profilanswer
 

bonjour
j'essaie de concevoir un mcd pour un site web.
Simplement je ne suis pas tres doué, j'apprends seul, et j'ai un peu trop l'habitude de créer les tables directement.
 
voici mon mcd actuel.
http://img339.imageshack.us/img339/6431/music7hn.th.jpg
 
concernant le menu, il ne sera pas forcement rattaché à style, c'etait juste pour l'integrer au mcd actuel.
mon probleme c'est que je veux concevoir un menu avec recursivité à l'infini, meme si ça ne me sera pas forcement utile.
je me suis fait la réflexion qu'un menu est caractérisé par le couple (id du menu parent, position dans le menu parent).
je pense donc que je dois obtenir une clef primaire sur deux colonnes, sauf que d'apres ce que j'ai compris, il faut avoir une relation (0,n) (0,n) pour ça.
Pouvez-vous me débloquer ?
Avez-vous des conseils pour améliorer mon modèle ?
 
merci.

mood
Publicité
Posté le 09-12-2005 à 18:57:35  profilanswer
 

n°1263429
olivthill
Posté le 10-12-2005 à 01:39:07  profilanswer
 

Je suis un peu étonné de voir une entité "menu". Et pourquoi pas une entité "bouton", une entité "fenêtre", une entité "liste déroulante". Ou bien il s'agit peut-être d'un catalogue, plutôt que d'un menu Windows.
 
L'intérêt essentiel d'un MCD est de préparer la création d'une base de données. Est-ce que le menu sera stocké dans la base ?
 
Bon, supposons qu'il ne s'agit pas du menu d'une interface graphique, mais d'un menu qui ressemble un catalogue, alors, que veut dire faire une association reflexive avec ce menu ? J'ai du mal à imaginer ce que cela peut-être, sauf peut-être si ce serait un catalogue qui pourrait contenir un sous-catalogue.

n°1263442
thesmiling​face
Earth Disasters Fundation
Posté le 10-12-2005 à 03:16:08  profilanswer
 

il s'agit d'un site web, et le menu d'un site web se retrouve généralement stocké dans la base. c'est plus pratique pour le mettre à jour que de l'écrire en dur dans un fichier php. apres si on associe une url au menu, on peut proposer un systeme d'edition de la page liée au menu dans une partie administration, etc...(tiens, ça rappelle pas un peu les cms ça...)
 
en faisant  
 
rapport_pere_fils
id_du_pere, pos_du_fils
#id_du_fils
 
menu
id_menu = #id_du_fils
libellé_du_menu
 
j'obtiens quelquechose de tout a fait potable.
par contre j'arrive pas a concevoir un MCD qui debouche là-dessus
A moins qu'on ait le droit d'avoir un couple d'identifiants dans le mcd, je suis paumé.

n°1263829
leflos5
On est ou on est pas :)
Posté le 11-12-2005 à 01:45:44  profilanswer
 

Soit t'as une dépendance fonctionnelle qui fait le lien parent/fils, soit ce qui est bien plus pratique et moins borné qu'alourdir pour respecter des normes qui valent ce qu'elle valent mais sont pas toujours justifiées, t'as une clé primaire sur l'ID et un attribut ID_père.
Id_père=0 c'est un père, sinon t'as un fils dont tu connais le père :)
 
Mais du coup pour récupérer tout ça faut utiliser une jointure sur la même table donc au final c'est pareil que d'en créer une pour faire le lien ,sauf que moins t'as de tables surtout pour des conneries mieux ça sera ;)

n°1263902
thesmiling​face
Earth Disasters Fundation
Posté le 11-12-2005 à 11:52:05  profilanswer
 

en fait mon soucis principal est d'empecher la saisie de deux positions identiques pour un meme parent.
 
mes deux tables sont restrictible à :
menu
id_du_pere, pos_du_fils
libellé_du_menu
 
là où ça se complique et où ma scission en deux tables semblent devenir intéressante, c'est la fonctionnalité jukebox.
 
chanson
id_chanson
titre
durée extrait (peut etre mis là où sur chanson_playlist)
 
album
id_album
libellé_album
date_sortie
 
playlist
id_playlist
 
chanson_playlist
id_playlist, pos_playlist
#id_chanson
 
chanson_album
id_album, pos_album
#id_chanson
 
le probleme c'est que je fais ça à l'instinct. et des fois je suis à coté de la plaque. Je veux bien qu'a force d'en faire bcp je vais trouver seul un résultat correct rapidement, mais j'aimerais bien avoir une logique de travail en plus d'un "je le sens comme ça".

n°1263972
leflos5
On est ou on est pas :)
Posté le 11-12-2005 à 14:39:08  profilanswer
 

J'ai pas compris ce que tu appelles position. Et pour moi, c'est ce que je dit plus haut, tu lies le fils au père, pas l'inverse ;)

n°1264125
thesmiling​face
Earth Disasters Fundation
Posté le 11-12-2005 à 20:30:03  profilanswer
 

position tel qu'affiché à l'écran
Forum 1                   Prix  5
HardWare.fr 2                 Se déconnecter 6
News  3                         Profil  7
Articles  4                      Aide 8
 
pos_playlist : position dans le fichier xml, m3u, asx, ..., sachant que le player va jouer les titre dans l'ordre dans lequel il les reçoit.
 
pos_album : numéro de plage dans l'album (track01, track02, track03, ....)
 
a vrai dire, à la base j'etais sur une simple clef primaire auto_increment avec une requete filtrant le parent et un ORDER BY dessus (la clef).
sauf qu'ajouter un menu pour le parent 'x' en 2eme position, dans le cas où on est deja au 4eme élément, je le vois soit comme "je trouve l'id du 2eme", j'update tous les enregistrements dont l'id est superieur ou égal à celle du 2eme (id= id+1), puis j'insere mon enregistrement avec l'ancien id du 2eme.
 
apres je me suis dit que ce serait bien d'avoir un champ position pour faire ce travail. j'ai créé un champ position, et j'en etais bien content, sauf que si on passe pas par mon formulaire, on peut specifier deux positions identiques, et je trouve pas ça propre.
 
j'ai préféré corriger ce probleme au niveau de la base de donnée, et refuser la saisie de deux valeurs identiques. c'est comme ça que j'en suis arrivé à ma clef sur deux colonnes. ainsi je ne modifie pas tous les identifiants supérieurs ou égal à id correspondant a toutes les catégories, mais uniquement les ids de la catégorie 'x'.
 
apres, c'est possible que je coupe les cheveux en 4. ma reflexion ne me semble pas particulierement utile pour un menu, car le nombre d'enregistrement n'est pas vraiment conséquent. le menu est surtout un exemple simple, une base de reflexion pour des trucs plus complexes.
 
edit: sorry j'a buggué


Message édité par thesmilingface le 11-12-2005 à 20:31:40
n°1264267
leflos5
On est ou on est pas :)
Posté le 12-12-2005 à 04:24:39  profilanswer
 

Clair que pour un menu...
T'as vraiment besoin de dynamique :??:
Le lien père/fils ne modifie rien à la position si t'as un réel père :D

n°1265099
thesmiling​face
Earth Disasters Fundation
Posté le 12-12-2005 à 23:24:44  profilanswer
 

le dynamique, oui, j'en ai besoin.
Que ce soit pour le menu ou pour autre chose.
Je fais dans le site dynamique, pas statique.
Alors, maintenant que je maitrise mieux les requetes SQL et les bases de données, j'essaie d'optimiser mes requetes.
Et là que j'aide un pote sur un site imposant, j'essaie de lui fournir un vrai service, donc je prends la peine de faire un mcd, maintenant que je sais ce que c'est ;) .
 
sinon, je ne saisis pas ta derniere phrase.
ma position est un nombre relatif au parent.
si je voulais faire ça relatif au "début" du menu, ça donnerait une serie de positions, séparées par des délimiteurs (points virgules par exemple), ce qui serait ingérable dans une requete. je ne peux pas mettre des champs a l'infini pour combler ce probleme. il me faut donc cette relativité.

n°1265151
leflos5
On est ou on est pas :)
Posté le 13-12-2005 à 03:36:26  profilanswer
 

NE pas tomber dans le tout dynamique ;) Si ça change pas pas besoin de dynamique ;)
 
Si t'arrive pas à comprendre que la position de ton père n'a rien à voir avec ses fils j'y peux rien...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [merise]association réflective

 

Sujets relatifs
[Hibernate] Sous-classe et association[MERISE] PB dans mon MLD ?
[Merise] Notion d'inclusion, lecture d'un schéma.Pb d association une classe a nune boite de dialog
association reflexive n,nphp+mysql une base de donnee pour adherents des associations
cration d'un bouton et association d'une fonction a ce codelogiciel pour dessiner des models entité association
Pb modelisation Entité-AssociationAssociation , agregation et composition
Plus de sujets relatifs à : [merise]association réflective


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR