2009-07-20 11 views
3

Je travaille actuellement sur un projet où j'ai besoin de sauvegarder des données en fonction du numéro actif. des articles.Comment créer une table avec dynamique no. de colonnes pour la saisie de données

Son .. comme

magasins peuvent avoir n pas d'éléments qui peuvent être dynamiquement ajoutée ou de back-end admin. Chaque élément peut être activé ou désactivé. Aucun problème.

Mais j'ai besoin de gérer/enregistrer ces n dynamiques. d'éléments dans une table pour chaque magasin. Je ne suis pas capable de décider du schéma de la table.

Toute aide sera grandement appréciée.

Répondre

4

Je suggère une relation standard plusieurs-à-plusieurs en utilisant une table du milieu. Donc, vous utiliseriez 3 tables:

  • StoresTable: la liste des magasins
  • ItemsTable: la liste des articles
  • StoreItemsTable: une liste des articles en magasins, chaque ligne aura une clé étrangère à la fois la table des magasins et la table des articles

Hope that helps.

3

votre problème n'est en fait pas si difficile si vous utilisez une approche différente.

Un magasin peut contenir un certain nombre d'articles. Donc, en gros, la boutique de Susi a 1 article, mais soudain elle en veut 2, et vous aimeriez ajouter une colonne. C'est très difficile si elle veut soudainement ajouter 2000 objets. La meilleure approche serait d'utiliser une table de magasin (qui a le nom du magasin, la date à laquelle elle a été créée et une clé primaire) et une table d'éléments. Vous pouvez ensuite ajouter des éléments en tant qu'entrées à la table et les lier au magasin via la clé primaire des magasins.

Un exemple:

Store table: 
PK Name    Owner 
1  Sunshine Store Susi 
2  Moonstore  Harald 

Item table: 
PK Name  Store_id  Price 
1  Candle 1    2.44 
2  Table 1    51.44 
3  Chair 2    6.55 

Cela vous permet d'ajouter autant d'articles dans un magasin que vous voulez. Le Store_id est appelé une clé étrangère dans cet exemple, car il lie les éléments au magasin. Vous pouvez ensuite utiliser des commandes SQL pour sélectionner les éléments, par ex.

"Select * from ITEMS where Store_id = 1;" 

et obtenir tous les éléments de Susi comme une réponse.

Bonne chance!

0

Je pense que vous utilisez une colonne active et que vous utilisez ce bit actif pour chaque usage car c'est très bon pour l'avenir dans d'autres transactions.

Questions connexes