surtout que si tu lie à une catégorie, ça oblige à faire des promos sur un rayon entier ou rien, c'est comme si à Auchan tout le rayon informatique étais en promo…ça va à l'encontre même du principe de la promotion. La promotion à 2 but (pour le commerçant):
-
Faire venir le consommateur en proposant un ou plusieurs "produit d'appel" à prix plus ou moins réduit (et donc la marge aussi). Le commerçant espère que le client, une fois sur place, complétera son ou ses achats, ce qui permettra au commerçant de "rattraper" sa marge.
-
Réduire ou liquider un stock trop important sur un produit (à l'instar des soldes ). Avoir du stock (contrairement aux idées reçus), n'est pas forcément une bonne chose pour un commerçant car le commerçant (pour la faire courte, on va sqwisé la partie compta) à déjà réglé le stock à son fournisseur, donc tant que le stock n'est pas écouler, on peut considérer qu'il est en "perte" sur le produit. Pire encore, il en perd deux fois parce que tant que le stock n'est pas écoulé, il ne peut pas mettre à sa place un autre produit…
Bon, ok, on pourrais se dire en me lisant que je suis un peu passé à coté de ta question…mais pas trop finalement, car si tu à eu le courage de lire jusqu'au bout, tu comprendra que mettre un rayon entier en promo n'à pas de sens (en tant que commerçant )
Bon, sinon, pour en revenir, oui, je penche aussi pour une table promo lié aux articles via l'ID. J'en rajouterais même une autre de table, pour contenir les information propre à la campagne de promo (nom de la promo ("Saint-Valentin" par ex ), date de début et fin de la promo, si les articles en promotion doivent afficher le taux de réduction ou non (Mention obligatoire pour les soldes par ex)....). et ensuite une table contenant les articles qui seront en promotion
Grace à ce système, on évite la redondance des infos, et au niveau des performance, une requête lié à trois tables ne consomme pas beaucoup plus qu'une liaison à deux tables (bon, là, c'est surtout en fonction de comment c'est codé )