J'ai base de données avec environ 50k (et en comptant) produits. De plus, les utilisateurs de mon site Web ont déclaré le pays de leur origine.Filtrer 50k + lignes par valeur autorisée ou bloquée
Maintenant, je dois ajouter à des domaines de produits comme allowed_countries
et blocked_countries
.
- produit peut avoir ces champs vides - il sera affiché à tous les utilisateurs,
- produit peut avoir
allowed_countries
rempli - il sera affiché SEULEMENT Les utilisateurs de ces pays, - produit peut avoir
blocked_countries
rempli - il sera montré à tous les utilisateurs, à l'exception des utilisateurs de la listeblocked_countries
.
Un tel filtrage devrait s'appliquer dans le catalogue de produits, la page de produit et le moteur de recherche (actuellement recherche de texte intégral).
Comment concevoir efficacement une base de données pour de telles exigences? Ce que je prends soin est la performance sous une charge assez importante. Je pensais à des colonnes dynamiques dans MariaDB 10.0.20, mais je ne suis pas sûr de la vitesse de filtrage par exactement un pays.
Comment cela peut renvoyer plusieurs lignes par produit? Vous utilisez 'left join' pour éviter cela. –
Utilisation de la jointure gauche pour le cas où aucun lien de pays n'est spécifié – exussum