Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Conception d'une base de donnée pour utilisation avec .NET

2 réponses
Avatar
Gilles TOURREAU
Bonjour tout le monde !

J'ai une base de données à concevoir qui sera utilisée par des applications
web ASP .NET.
Voilà en résumé mon cahier des charges :

- Une société X vend différents produits informatiques.
- Ces produits ont des caractéristiques communes (Dimension, Prix, ...etc),
mais aussi d'autres caractéristiques différents (Fréquence pour un
processeur, Vitesse de rotation pour un disque dur ...etc).
- La société veux pouvoir comparer les caractéristiques d'un type de
produit. (Par ex : comparer les vitesses de rotation des disques dur,...)
TRES IMPORTANT : La société veux utiliser des DataSet typé de .NET

Comment concevoir ce type de base de donnée sachant que les types de
produits peuvent changer ?

Les solutions que j'ai trouvé sont les suivantes :

Solution n°1 :
- Table TypeProduit.
- Table Produit (avec autant de colonne que de caractéristique différentes)

AVANTAGE : On peut ajouter un type de produit à sa guise...
INCONVENIENT : Cette solution entraine une table Produit importante (j'ai
recensé 300 colonnes différentes), et la manipulation des données risques
d'être fastidieuse. De plus la quantité de place utilisée est trop
importante...

Solution n°2 :
- Table TypeProduit
- Table ProduitCommun (Contient uniquement les caractéristiques communes des
produits. Prix, dimensions,...etc)
- Table InfoDisque (Caractéristiques spécifiques aux disques durs)
- Table InfoProc (Caractéristiques spécifiques aux processeurs)
- Table InfoXXXX (Caractéristiques spécifiques aux type de produits XXXXX)
- ....

AVANTAGE : Optimise l'espace disque
INCONVENIENT : A chaque ajout de type de produit il faut créer une table...


Quel solution me conseillerez-vous ?

Cordialement

2 réponses

Avatar
Gilles TOURREAU
JustMe a utilisé son clavier pour écrire :
Gilles TOURREAU a exposé le 26/03/2006 :
Bonjour tout le monde !

J'ai une base de données à concevoir qui sera utilisée par des applications
web ASP .NET.
Voilà en résumé mon cahier des charges :

- Une société X vend différents produits informatiques.
- Ces produits ont des caractéristiques communes (Dimension, Prix, ...etc),
mais aussi d'autres caractéristiques différents (Fréquence pour un
processeur, Vitesse de rotation pour un disque dur ...etc).
- La société veux pouvoir comparer les caractéristiques d'un type de
produit. (Par ex : comparer les vitesses de rotation des disques dur,...)
TRES IMPORTANT : La société veux utiliser des DataSet typé de .NET

Comment concevoir ce type de base de donnée sachant que les types de
produits peuvent changer ?

Les solutions que j'ai trouvé sont les suivantes :

Solution n°1 :
- Table TypeProduit.
- Table Produit (avec autant de colonne que de caractéristique différentes)

AVANTAGE : On peut ajouter un type de produit à sa guise...
INCONVENIENT : Cette solution entraine une table Produit importante (j'ai
recensé 300 colonnes différentes), et la manipulation des données risques
d'être fastidieuse. De plus la quantité de place utilisée est trop
importante...

Solution n°2 :
- Table TypeProduit
- Table ProduitCommun (Contient uniquement les caractéristiques communes
des produits. Prix, dimensions,...etc)
- Table InfoDisque (Caractéristiques spécifiques aux disques durs)
- Table InfoProc (Caractéristiques spécifiques aux processeurs)
- Table InfoXXXX (Caractéristiques spécifiques aux type de produits XXXXX)
- ....

AVANTAGE : Optimise l'espace disque
INCONVENIENT : A chaque ajout de type de produit il faut créer une table...


Quel solution me conseillerez-vous ?

Cordialement



Et pourquoi pas *une* table des propriétés avec type/valeur ?



C'est ce que j'avais pensé, mais cela risque de ne pas trop
complexifier les requêtes ?
Comment pourra-t-on faire pour récuperer en SQL les caractéristiques
d'un produit ?

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Gilles TOURREAU
MaXX avait prétendu :
Gilles TOURREAU wrote:

JustMe a utilisé son clavier pour écrire :
Gilles TOURREAU a exposé le 26/03/2006 : [...]
Comment concevoir ce type de base de donnée sachant que les types de
produits peuvent changer ?
Les solutions que j'ai trouvé sont les suivantes : [solution 1&2]
AVANTAGE : Optimise l'espace disque
INCONVENIENT : A chaque ajout de type de produit il faut créer une
table...
Quel solution me conseillerez-vous ?


Et pourquoi pas *une* table des propriétés avec type/valeur ?


C'est ce que j'avais pensé, mais cela risque de ne pas trop
complexifier les requêtes ? Pas énormément...
Comment pourra-t-on faire pour récuperer en SQL les caractéristiques
d'un produit ?


Données:
Table produits (id int,valeur text)
Table caracteristiques (prod_id int reference produits.id, type text, valeur
text)

select caracteristiques.type, caracteristiques.valeur from carateristiques
where produits.id=3

Désolé je n'ai as le temps d'argumenter plus maintenant, mais voilà une
piste...



Merci pour ta réponse, mais comment faire pour récuperer les
caractéristiques par colonne...

T'as solution permet de récuperer les caractéristiques comme ceci :

caracteristiques.type caracteristiques.valeur
--------------------- -----------------------
Fréquence 4.2 GHz
Marque Intel
Type 64-bit
....
etc

Seulement moi j'aurais voulu comme ceci :
fréquence Marque Type
---------- ------ ----
4.2 Ghz Intel 64-bit

Peut-on le faire avec une requête SQL ?


Cordialement


--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr