0
votes

Comment gérer des matrices multidimensionnelles dans SQL?

J'apprends simplement à utiliser des bases de données relationnelles, alors mes connaissances sont limitées. J'ai des points de données, qui s'appuient sur 3 valeurs: type de produit, âge et valeur x. Donc, pour chaque type de produit, il y a une matrice à partir de laquelle on peut obtenir le prix dépend du prix de l'âge et de la valeur x.

produit A xxx

Il y a plusieurs de ces produits. Les valeurs de x et les gammes d'âge peuvent varier.

de sorte que le prix du produit dépend du type de produit, de l'âge et de la valeur x. Comment puis-je concevoir mes tables afin de fournir la normalisation?

Merci d'avance.


4 commentaires

En utilisant des clés étrangères. Dans tous les cas, veuillez fournir un échantillon des données (dans votre cas les exigences) et les mettre sous forme claire comme ce que vous demandez n'est pas très clair


Merci pour le conseil


Ces zones d'âge peuvent-elles être utilisées pour autre chose que le calcul du prix? Même question concernant la valeur x


Non, ils ne sont utilisés que pour calculer le prix.


3 Réponses :


1
votes

Ces relations peuvent s'adapter:

Product(name,*ID*) 
Relation (*product_ID,type_id,age_id,value_X_id*) FK product_id references product, type references types, age references ages, valueX references value_2s
ValueXs(*ID*, value)
Type2(*ID*, value)
Age(*ID*, value)


1 commentaires

Merci de votre contribution!



2
votes

Vous pouvez vouloir 4 tables.

1 table stockage de l'âge min et max (chaque gamme) p>

1 table stocke la valeur x p>

1 table stockage de la Nom du produit (et d'autres informations) P>

1 Table de relation entre les tableaux Âge, Valeur X et Nom du produit, stockant les clés étrangères d'entre eux et le prix. La clé primaire de ce tableau est la composition de tout FK pour assurer des données uniques. P>

Je suis en train d'écrire du code SQL pour vous fournir des exemples. P>

SCHEMA (MYSQL V5 .7) strong> p> xxx pré>


requête # 1 strong> p> xxx pré>

sortie forte> p> xxx pré>


listage de toutes les tables Contenu h3>

Query # 2 strong> P>

SELECT * FROM pricing;

| age_id | valuex_id | products_id | price |
| ------ | --------- | ----------- | ----- |
| 1      | 1         | 1           | 5.6   |
| 1      | 2         | 1           | 3.9   |
| 1      | 3         | 1           | 6.4   |
| 1      | 4         | 1           | 5.2   |
| 2      | 1         | 1           | 3.5   |
| 2      | 2         | 1           | 6.3   |
| 2      | 3         | 1           | 2.3   |
| 2      | 4         | 1           | 3.7   |
| 3      | 1         | 1           | 12.3  |
| 3      | 2         | 1           | 6.3   |
| 3      | 3         | 1           | 3.5   |
| 3      | 4         | 1           | 5.5   |


0 commentaires

1
votes

Fondamentalement, vous auriez 4 tables.

On contiendra les informations sur le produit,
On contiendra les gammes d'âge (note: cela assume les gammes d'âge sont les mêmes pour chaque produit)
On contiendra X valeurs de
et le dernier contiendra le prix, en utilisant des clés étrangères pour 3 tables que j'ai énumérées auparavant.

puisque vous avez des plages d'âge différents et des valeurs x pour chaque produit, ces tables doivent également avoir des clés étrangères faisant référence à la référence. Tableau des produits.

Quelque chose comme ça devrait vous aider à démarrer: xxx


3 commentaires

J'ai des gammes d'âge potentiellement différentes et des valeurs X différentes pour chaque produit. Donc, chaque entrée d'Ageranges et X devrait-elle avoir des références à un produit spécifique? N'est-il pas suffisant que je référencement l'agérange_id et x_id dans la table des prix? Sinon, cela vous dérangerait-il de me fournir un exemple rapide? Vos requêtes sont déjà incroyablement utiles. Merci.


J'ai édité ma réponse avec les clés étrangères supplémentaires.


Heureux de vous aider :-)