J'ai une base de donn=E9e de produit.
aujourd'hui je dois ajouter des attributs qui permettent de segmenter ces p=
roduits.
Le probl=E8me est qu'en fonction des produits, les attribut ne vont pas =EA=
tre les m=EAmes.
Par exemple (en simplifiant):
Pour une cartouche d'encre je vais avoir la capacit=E9, la couleur et le vo=
lume
Pour un CD, je vais avoir la capacit=E9, la vitesse de lecture, et le mode =
(+R -R, ...)
Donc, j'ai plusieurs options !
1 - ajoute a ma table produit les colonnes capacit=E9, couleur, volume, vit=
esse et mode. C'est simple, mais je vais avoir des tas de colonnes qui ne s=
ervent a rien pour certains type de produit
2 - je cr=E9er une table attribut contenant une entr=E9e pour chaque attrib=
ut. Ca donne une truc genre
Pourquoi pas !!!
Je suis pas fan, ca risque de mouler un peu lors des jointures !!!
3 - j'utilise l'h=E9ritage
Je cr=E9e alors une table
product_cd pour les CD
product_je pour les cartouche jet d'encre
Le probleme est alors d'arriver a transformer un enregistrement de type pro=
duc en product_cd. Je pense meme que c'est carr=E9ment pas possible.
Pourquoi pas !!! Je suis pas fan, ca risque de mouler un peu lors des jointures !!!
C'est bien si très peu d'interrogations...
3 - j'utilise l'héritage Je crée alors une table product_cd pour les CD
oui, largement préférable
product_je pour les cartouche jet d'encre
non, - product_encre -- product_encre_solide (toner) -- product_encre_liquide etc...
héritage à plusieurs niveaux...
Le probleme est alors d'arriver a transformer un enregistrement de
type produc en product_cd. Je pense meme que c'est carrément pas possible.
Il suffit d'utiliser des déclencheur INTEAD OF et des vues.
Lisez les articles que j'ai écrit à ce sujet... http://sqlpro.developpez.com/cours/modelisation/heritage/ http://blog.developpez.com/sqlpro/p9259/ms-sql-server/exemple_d_utilisation_du_mapping_ro_dire
Bref. Pour quelle solution faut-il que j'opte ?
Une idée ? Un retour d'expérience ?
Merci, Etienne.
-- Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66 Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Salut
Le 11/03/2013 12:00, Etienne Sobole a écrit :
Salut.
J'ai une base de donnée de produit.
aujourd'hui je dois ajouter des attributs qui permettent de segmenter
ces produits.
Le problème est qu'en fonction des produits, les attribut ne vont pas
être les mêmes.
Par exemple (en simplifiant):
Pour une cartouche d'encre je vais avoir la capacité, la couleur et
le volume
Pour un CD, je vais avoir la capacité, la vitesse de lecture, et le
mode (+R -R, ...)
Donc, j'ai plusieurs options !
1 - ajoute a ma table produit les colonnes capacité, couleur, volume,
vitesse et mode. C'est simple, mais je vais avoir des tas de colonnes
qui ne servent a rien pour certains type de produit
MAUVAIS : par principe pas de NULL !
2 - je créer une table attribut contenant une entrée pour chaque
Pourquoi pas !!!
Je suis pas fan, ca risque de mouler un peu lors des jointures !!!
C'est bien si très peu d'interrogations...
3 - j'utilise l'héritage
Je crée alors une table
product_cd pour les CD
oui, largement préférable
product_je pour les cartouche jet d'encre
non,
- product_encre
-- product_encre_solide (toner)
-- product_encre_liquide
etc...
héritage à plusieurs niveaux...
Le probleme est alors d'arriver a transformer un enregistrement de
type produc en product_cd. Je pense meme que c'est carrément pas possible.
Il suffit d'utiliser des déclencheur INTEAD OF et des vues.
Lisez les articles que j'ai écrit à ce sujet...
http://sqlpro.developpez.com/cours/modelisation/heritage/
http://blog.developpez.com/sqlpro/p9259/ms-sql-server/exemple_d_utilisation_du_mapping_ro_dire
Bref.
Pour quelle solution faut-il que j'opte ?
Une idée ?
Un retour d'expérience ?
Merci,
Etienne.
--
Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
Pourquoi pas !!! Je suis pas fan, ca risque de mouler un peu lors des jointures !!!
C'est bien si très peu d'interrogations...
3 - j'utilise l'héritage Je crée alors une table product_cd pour les CD
oui, largement préférable
product_je pour les cartouche jet d'encre
non, - product_encre -- product_encre_solide (toner) -- product_encre_liquide etc...
héritage à plusieurs niveaux...
Le probleme est alors d'arriver a transformer un enregistrement de
type produc en product_cd. Je pense meme que c'est carrément pas possible.
Il suffit d'utiliser des déclencheur INTEAD OF et des vues.
Lisez les articles que j'ai écrit à ce sujet... http://sqlpro.developpez.com/cours/modelisation/heritage/ http://blog.developpez.com/sqlpro/p9259/ms-sql-server/exemple_d_utilisation_du_mapping_ro_dire
Bref. Pour quelle solution faut-il que j'opte ?
Une idée ? Un retour d'expérience ?
Merci, Etienne.
-- Frédéric BROUARD - expert SGBDR et SQL - MVP SQL Server - 06 11 86 40 66 Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Enseignant Arts & Métiers PACA, ISEN Toulon et CESI/EXIA Aix en Provence Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************