Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
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 18/07/2006, 17h31   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 30
Points : 12
Points : 12
Par défaut Structure de base de données

Bonjour,

Je souhaiterais modèliser une base de données de produits. Le problème est que ces produits peuvent avoir des caracteristiques et critères de recherche très différents.

Ex :
  • Carte graphiques avec filtre de recherche sur la marque, la mémoire, le bus graphique, chipset graphique, etc...
  • Processeur avec champs marque, fréquence, socket, etc...
  • Carte mère avec champs marque, socket, chipset, bus graphique, etc..
La solution qui me parait la plus adaptée est la modélisation par héritage :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
t_produit
prd_id (pk)
prd_marque
prd_prix
 
----------
 
t_carte_graph
prd_id
prd_mem
prd_bus
prd_chipset
 
t_cpu
prd_id
prd_freq
prd_socket
 
etc...
  • Pensez-vous que c'est la seule solution à adopter ???
  • En terme de souplesse, y a t-il mieux ???
  • Pouvez-vous me proposer d'autres modèles ??? (autre que la modèlisation par méta-données, quelle galère !!! )
Merci d'avance

Cordialement,

Philippe
hphil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 00h51   #2
Rédacteur
 
Avatar de pcaboche
 
Homme Pierre Caboche
Inscription : octobre 2005
Messages : 2 197
Détails du profil
Informations personnelles :
Nom : Homme Pierre Caboche
Âge : 32
Localisation : Singapour

Informations forums :
Inscription : octobre 2005
Messages : 2 197
Points : 4 721
Points : 4 721
Bonsoir Philippe,

Citation:
Envoyé par hphil
La solution qui me parait la plus adaptée est la modélisation par héritage
Ca me semble aussi la solution la mieux adaptée.

Ca te permet également de représenter de manière très fine les données propres à chaque composant et de faire des traitements intéressants comme la liste des matériels compatibles.

Exemple: Une carte mère est caractérisée (entre autres) par:
- le type et le nombre de socket pour le processeur
- le type et le nombre de ports (PCI-Express, AGP, PCI...)
- ...

Un processeur est caractérisé par:
- le type de socket
- la fréquence
- ...

Une carte graphique est caractérisée par:
- le type de port
- ...


Avec:
  • des tables "composants" comme: t_carte_mere, t_carte_graph, t_cpu
  • des tables "caractéristiques" comme: t_socket, t_port
  • des tables traduisant les relations comme "cette carte-mère possède 2 ports PCI-Express"
on peut en fonction du processeur choir la carte mère, puis la carte graphique, etc.



La limitation d'un tel système, ce sont les solutions "hybrides" faisant intervenir de l'héritage multiple, par exemple les barebones qui regroupent à la fois la carte mère, le boitier et le ventirad.

Un autre cas assez pénible, ce sont les cartes mère multi-processeurs, par exemple.


Citation:
Envoyé par hphil
  • Pensez-vous que c'est la seule solution à adopter ???
  • En terme de souplesse, y a t-il mieux ???
La seule, non. La meilleure, certainement.

C'est déjà très très souple: ça te permet de définir précisément les caractéristique de chaque composant, et surtout les contraintes entre composants (sockets entre processeurs et CM, etc.)
pcaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 17h12   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 30
Points : 12
Points : 12
Bonjour,

Merci Caboche de m'avoir répondu.

Citation:
Envoyé par pcaboche
La seule, non. La meilleure, certainement.
La modélisation par héritage me semble aussi la plus adaptée ! Elle offre pas mal de perspective en terme d'évolutivité (dommage que MySQL ne gère pas ça en natif, alors que PostgreSQL... )

Par curiosité et pour ma culture personnelle, ya t-il une autre solution tout aussi pertinente que l'héritage pour modéliser une telle structure, commune quand même à beaucoup de site de ecom (LDLC, TopAchat, Pixmania, et j'en passe...) ?

----------

Cordialement,

Philippe
hphil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 19h42   #4
Rédacteur
 
Avatar de pcaboche
 
Homme Pierre Caboche
Inscription : octobre 2005
Messages : 2 197
Détails du profil
Informations personnelles :
Nom : Homme Pierre Caboche
Âge : 32
Localisation : Singapour

Informations forums :
Inscription : octobre 2005
Messages : 2 197
Points : 4 721
Points : 4 721
Citation:
Envoyé par hphil
Par curiosité et pour ma culture personnelle, ya t-il une autre solution tout aussi pertinente que l'héritage pour modéliser une telle structure, commune quand même à beaucoup de site de ecom (LDLC, TopAchat, Pixmania, et j'en passe...) ?
T'as qu'à leur demander... (mais ça métonnerait beaucoup qu'ils te répondent: "Bonjour, comme vous m'avez l'air bien sympatique, voici la structure de notre base de données en ligne, faites-en ce que vous voulez. Enjoy !")

Plus sérieusement, je ne pense pas qu'il y ait d'autre solution (je veux dire "d'autre solution viable". Sinon il y a toutjours la solution avec les méta-données mais bon... tu vois ce que je veux dire !)
pcaboche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 20h45   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2005
Messages : 30
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 30
Points : 12
Points : 12
Merci d'avoir pris le temps de me répondre. Cela m'a permis d'effacer certaines zones d'ombres et de doutes

Je clos le sujet...

@plus

----------

Bien cordialement,

Philippe
hphil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h56.


 
 
 
 
Partenaires

Hébergement Web