Il existe plusieurs façons de remédier, dont chacune augmente la complexité:
Ne pas les informations de l'unité de magasin:
L'enregistrement de l'élément peut stocker dans la description.
Article Tableau:
ID | Description
---+---------------------------------
09 | Red Sox Tee Shirt (Case of 12)
10 | Red Sox Tee Shirt (each)
11 | 500lb Nylon Rope (per foot)
ensuite sur la table de commande, il vous suffit de stocker un Item ID
+ Quantity
où la quantité est une valeur décimale.
Stockez l'appareil dans le cadre de l'article
Description | Unit | UnitPrice
------------------+------+----------
Red Sox Tee Shirt | Case | 45.00
500lb Nylon Rope | Foot | 0.25
ensuite sur la table de commande, il vous suffit de stocker un Item ID
+ Quantity
où la quantité est une valeur décimale.
unités magasin convertibles comme table enfant connexe de l'article
Article Tableau:
ID | Description
---+----------------
10 | Red Sox Tee Shirt
11 | 500lb Nylon Rope
table Item_Unit
ID | Unit | UnitPrice
---+--------+----------
10 | Each | 6.00
10 | Case12 | 60.00
11 | Foot | 0.25
11 | Spool | 250.00
Dans ce cas, l'enregistrement de la commande aurait besoin d'avoir Item ID
+ Unit
+ Quantity
plus souple et complexe - unités convertibles
Ce serait une extension de la dernière forme, mais où vous avez une table « Unité » qui stocke les unités, leur type d'unité (longueur, volume, etc. ...) et leur relation avec une unité commune. De cette façon, vous pouvez réellement convertir d'une unité à l'autre (1000 pieds == 1 bobine) par exemple.
Mais il est peu probable que vous ayez besoin de ce niveau de complexité.
Un grand merci pour toutes vos suggestions. La configuration particulière que nous avons est à peu près celle d'un magasin de vêtements, donc notre unité ne va vraiment être '1'. Donc, par exemple, nous avons un tee-shirt et il y a 2 médiums, 3 xl et 4 petits. Je pense à avoir la table item et une autre table item_sizes avec une entrée pour chaque paire quantité/taille. Ensuite, stocker à nouveau la totalité de la liste size/qty de l'élément sous la forme d'un tableau JSON (afin que je fasse la requête et ensuite l'étendre dans le tableau size/qty de ma logique) se sent plus rapide et peut-être plus facile de travailler avec mais il ne se sent pas aussi propre. –