2011-02-14 4 views
0

J'essaie de réorganiser un système de commande pour un site Web de commerce électronique. Tbl_orders, cela fonctionne bien mais il y a une autre table en dessous qui (pour ainsi dire) appelle tbl_orderitemsPlusieurs chaînes dans un champ SQL

Dans ce tableau tbl_orderitems je stocke un ID qui fait référence à l'image des items mais parfois il y a plus de une image associée à un objet, je pense maintenant à des façons de stocker plus d'un nom de fichier dans un seul champ.

Alors disons que le champ est appelé Nom du fichier, cela pourrait être un varchar (400) par exemple - je voudrais stocker plus d'un nom de fichier comme si ..

Images/cartes/côtés/complet/145 .jpg, Images/cards/sides/complete/146.jpg, Images/cartes/sides/complete/147.jpg

Donc, ma première idée est de le sauvegarder sous forme de virgule mais ce que je demande est - est il y a une meilleure façon de le faire? Comme dans, un moyen plus rapide? Je vais utiliser ASP.NET C# pour lire ces données et devra parcourir les chaînes. J'ai récemment utilisé JSON, cela vaut-il la peine de l'utiliser?

Merci à l'avance

Répondre

3

Créer une table séparée avec deux colonnes qui associe ids ordre article avec les noms de fichiers. S'il est possible de partager des fichiers avec des articles de la commande, je vous suggère de créer également une table "images" qui stocke l'ID de l'image et le nom de fichier (et tout autre attribut que vous voulez associer à une image), et remplacez la colonne filename dans la première table que j'ai mentionnée avec l'image-id.

+0

C'était simple. J'ai juste eu une discussion et nous sommes arrivés à la conclusion que c'est la meilleure façon de résoudre ce problème. Je pense que cela nous donne plus de flexibilité, nous pouvons l'interroger facilement et également stocker plus de données avec elle, taille etc. – tmutton

+0

Il y a plus d'une table pour des images ainsi nous ne pouvons pas stocker un id. Nous avons des tableaux d'images pour les cartes de visite, les calendriers et les impressions de photos. Nous ne pouvons donc pas renvoyer l'identifiant aux tables. C'est pourquoi nous stockons simplement les noms de fichiers. – tmutton

+0

"plus d'une table pour les images" déclenche l'alarme dans ma tête. Est-il nécessaire de diviser les informations d'image sur plusieurs tables? Une alternative consiste à avoir une seule table contenant des informations sur l'image, puis à séparer les tables qui stockent simplement les identifiants d'image pour les différentes catégories (et les attributs spécifiques à chaque catégorie). –

1

Vous pouvez créer deux tables au lieu d'une seule.

comme suit:

create table tbl_orderitemsgroup (
id int identity(1,1) not null) 

create table tbl_orderitem (
id int identity(1,1) not null, 
group_id int not null 
) 

avec tbl_orderitem.group_id clé étrangère tbl_orderitemgroup.id

Questions connexes