J'ai regardé les autres questions sur SO et je n'arrive pas à comprendre comment cela fonctionne. Je construis un magasin en ligne d'armes à feu qui permettra de cataloguer les armes à feu et les articles connexes. Il y a deux problèmes que je vais avoir -Comment insérer des données dans plusieurs tables
Problème 1
Dans ce problème, j'ai une forme de AJOUTZ où le produit est divisé en deux parties; le premier est ATTRIBUTS PRIMAIRES et le second est ATTRIBUTS SECONDAIRES. Voici un SS de la forme de test:
Un exemple serait des armes à feu ont huit variations différentes de ce modèle. Il peut différer en longueur de canon, style de stock, taille de calibre de balle, et d'autres caractéristiques. Donc, je vais afficher les ATTRIBUTS PRIMAIRES en haut de la page et dans un tableau, je vais énumérer tous les sous-modèles qui énumèrent les ATTRIBUTS SECONDAIRES.
Les ATTRIBUTS PRIMAIRES sont des attributs que tous les produits de cette catégorie auront définitivement. Les ATTRIBUTS SECONDAIRES sont des attributs que certains produits auront. Donc, lorsque le formulaire est rempli et soumis, je veux que les données à insérer dans tous les tableaux en un seul coup. Voici mes tableaux:
Problème 2
La façon dont ma table secondaire ATTRIBUTES est créé, je peux ajouter un attribut à la fois. Dans la capture d'écran ci-dessus, il y a huit ATTRIBUTS SECONDAIRES, est-ce que je créerais une boucle qui bouclera huit fois l'insertion de données à chaque fois? J'espère que cela a du sens, sinon je vais entrer dans plus de détails.
Remarque, j'utilise PHP/MySQL.
EDIT
Je pris les conseils de tout le monde et a essayé de concevoir ma base de données en utilisant les suggestions. S'il vous plaît jeter un oeil et voir si ce que j'ai fait est quelque chose qui fonctionnerait efficacement. J'apprends le concept simple d'un-> un, un-> beaucoup, beaucoup-> beaucoup, et etc ... La seule chose que j'ai vu qui pourrait être un-> un est le produit au fabricant. Est-ce que cela semble correct? J'ai passé beaucoup de temps à essayer de faire de son mieux et j'apprécie le feedback/la critique de tout le monde. Ci-dessous mon nouveau schéma:
Merci,
X * les instructions * séparées * sont correctes. Assurez-vous de * utiliser les transactions * (c'est-à-dire, utilisez un vrai moteur de table de base de données et n'utilisez pas la validation automatique). –
Hey pst, y a-t-il une façon de rédiger un exemple rapide? Je suis un apprenti visuel avec ce genre de choses. – Mike
SO fonctionne mieux le * autre * façon :-) Commencez avec la tâche, insérez 8 attributs ... puis écrivez du code qui fait exactement cela. 8 inserts séparés; dans une boucle et/ou en appelant simplement une fonction pour faire abstraction de tout le code en double. Est-ce que ça marche? Si non, pourquoi pas? Toute préoccupation? (Ensuite, les réponses peuvent se concentrer sur des détails spécifiques et/ou offrir des alternatives utiles.) –