2010-10-14 34 views
0

J'essaie de créer un produit de commerce électronique qui prend les commandes de travaux d'impression. Je voudrais créer des tables telles que celles ici sur solopress par exemple http://www.solopress.com/leaflet-printing/leaflets.html. Je me bats un peu avec les étapes logiques de la modélisation dans une base de données. Tout d'abord, comment pourrais-je créer une table comme celle-là où les options de colonnes pourraient être configurées différemment par produit dans une base de données sans avoir à créer une table de base de données réelle à chaque fois. Ensuite, quelle serait la meilleure façon de travailler pour que les prix changent comme dans l'exemple ci-dessus, quand vous changez entre Unfolded et Folded - cela doit-il être deux tables indépendantes qui sont commutées?Modélisation d'une table de matrice de prix dans MySQL

Répondre

0

Pour le stockage des prix que je aurait organiser la table comme ceci:

size enum('A3','A4','A5','A6','DL'), 
min_qty INT, 
sides ENUM('1','2'), 
folded BOOL, 
price DECIMAL(6,2) 

avec la taille de votre être la clé primaire + min_qty + côtés + plié. Générer la page Web impliquera PHP ou similaire et la mise à jour du prix que les options sont choisies impliquera javascript. Si vous avez des questions spécifiques sur celles-ci, elles devraient probablement être posées séparément.

+0

Ah je n'avais pas pensé à enum, ça pourrait être utile. Cela peut-il être changé? Je suppose que cela changerait la structure de la table. –

+0

Les enums peuvent être changés avec ALTER COLUMN qui n'est pas difficile, mais il semble peu probable que vous ayez plus de deux côtés sur une page –

+0

Ah ah, en effet :) mais nous pouvons changer les tailles disponibles! Oh, je viens de penser que dans ce cas je n'ai peut-être pas besoin de le définir comme une énumération, peut-être que la chose qui m'intéresse le plus est de le saisir sur une combinaison de champs? –