Est-ce une bonne pratique (ou cela aurait-il des effets négatifs) d'utiliser un ensemble de 4 colonnes pour identifier une ligne comme étant unique (l'une étant une clé foriegn, les trois autres étant des types de données float)? J'essaie de construire une table qui (avec 4 clés liées) décrirait une entrée unique dans la table. Je suis curieux de savoir s'il s'agit d'un bon plan d'attaque ou s'il existe une meilleure solution.
À des fins visuelles, imaginez le tableau suivant. Nous avons des éléments d'inventaire qui sont organisés comme le tableau suivant: ( [K]
est symbolique de la clé primaire, les lignes sont des relations)
Sheet_Class Sheet_Type Sheet_Size
=========== ========== ==========
[K] Sheet_Class-. [K] Sheet_Type--. [K] Sheet_Size
'---- Sheet_Class '---- Sheet_Type
Length
Width
Thickness
Les données peuvent se présenter de la manière suivante, mais par souci de concision, j'ai exclu de faire passer les colonnes liées:
Sheet_Class Sheet_Type Sheet_Size (Tables)
[Sheet_Class] [Sheet_Type] [Length], [Width], [Thickness] (Column Values)
============= ============ ==============================
Aluminum
5052-H32
48, 96, 0.032
48, 96, 0.040
48, 96, 0.063
6061-T6
60, 120,0.032
60, 120,0.040
60, 120,0.063
Steel
1018-CRS
48, 96, 0.018
48, 96, 0.023
48, 96, 0.031
En l'état (et comme je l'ai montré dans mon "schéma" ci-dessus), j'utilise une clé primaire entière simple (auto-incrémentée) pour les entrées de la table Sheet_Size . Cependant, j'aimerais savoir s'il est préférable d'utiliser une combinaison des colonnes Sheet_Type , Longueur , Largeur et Épaisseur à la place? Étant donné que chaque entrée dans Sheet_Size devrait partager toutes ces qualités uniques, et qu'un champ d'auto-incrémentation ne le démontrerait pas assez bien, est-ce la meilleure voie à suivre?
Si je n'explique pas assez bien la situation, faites-le moi savoir. Je me retrouve à avoir besoin de décomposer ces portions (classe vs type vs tailles de stock réelles) d'un matériel inventorié à d'autres fins logiques, mais je suis prêt à tout autre type de rétroaction.
Tout conseil serait apprécié.
Mise à jour (08-12-2011)
Après les réponses affichées, j'ai décidé de faire une combinaison de la réponse de Mark & la réponse de X-Zero . J'ai décidé que c'était une bonne idée de placer une contrainte unique sur les colonnes de longueur, largeur et épaisseur, mais j'aime aussi l'idée de décomposer les tailles de matériaux en lignes uniques et de les lier à une relation.
Malheureusement, je ne peux pas accepter les deux réponses, donc je vais accepter X-Zeros pour avoir (ce que je ressens) un regard plus critique sur le problème et offrir un ajustement du schéma.
Merci à tous pour vos réponses.