2009-03-13 22 views
1

Hé les gars et les filles, j'ai un champ dans une table que je vais stocker différents types de données, comme: X-Large, Medium, Small .... ou je pourrais stocker: 22 mars 2009, 1 an, 2 ans, 3 ans ... ou 06 mois, 12 mois, 1 an, ou je pourrais stocker: "33-36", "37-40" ... et ces données ne sont pas fixe, je pourrais avoir besoin à l'avenir d'ajouter de nouvelles catégories ...Data Type d'un champ

Le choix évident d'un type de données serait un nvarchar (longueur), mais d'autres suggestions? est-il un moyen de contourner cela ??? merci dans une avance ...

Répondre

3

On dirait que vous essayez de stocker une "taille". Peut-être avez-vous besoin d'une table "Size" avec ces valeurs (X-Large, Medium, Small, 1 Year, etc.) et d'un champ ID qui va dans l'autre table. Pourquoi vous voudriez également stocker une date dans le même champ est un peu déroutant pour moi. Êtes-vous sûr de ne pas avoir deux champs différents ici?

ETA: Sur la base de vos commentaires, je vous suggère de créer un couple de tables supplémentaires:

SizeType - définirait le type de "taille" que vous travaillez avec (par exemple childrens vêtements, enfants chaussures, hommes chaussures, chaussures pour femmes, chemises pour hommes, pantalons pour hommes, chemises pour femmes, pantalons pour femmes, etc.). Aurait deux colonnes - un ID et une description. Taille - Définirait les tailles individuelles (par exemple "Taille 5", XL, 33-34, 0-6 mois, etc.). Aurait trois colonnes - et ID, une description et l'ID SizeType correspondant à partir de SizeType.

Maintenant sur votre table de produits, vous devez mettre l'ID de la table de taille. Cela vous donne une certaine flexibilité en termes d'ajout de nouvelles tailles, de déterminer quelles tailles vont avec quel type de produits, etc. Vous pouvez également le décomposer pour rendre la conception encore meilleure, mais je ne veux pas trop compliquer les choses ici .

+0

Il est de taille, mais la taille pour les vêtements de bébé est basée sur l'âge, mois ou années ... et la taille des chaussures ont un système différent de celui des vêtements, que pensez-vous que je devrais faire? – Maen

0

nvarchar (max) fonctionnerait. Sinon, vous pouvez avoir plusieurs colonnes, une de chaque type possible. Cela vous empêcherait de convertir des choses comme des nombres en double précision en chaînes et en arrière.

0
  • nvarchar (max) si les données sont limitée à des chaînes de moins de 2 Go .
  • ntext si vous devez autoriser les chaînes de plus de 2Go. Binaire ou image si vous avez besoin de stocker des données binaires .
1

Peu importe ce que vous faites, une telle conception de base de données ne semble pas bonne. Néanmoins, vous pouvez utiliser le type de données BLOB pour stocker simplement des données dans une colonne ou un type de texte si c'est du texte (de cette façon, la recherche fonctionnera mieux, en comprenant les majuscules et minuscules, etc.).