U zou de prestatieproblemen van groeperen en tellen kunnen elimineren als u die informatie ergens opslaat. Je zou een kolom aan Producten kunnen toevoegen met de naam total_categories
dat zal u vertellen aan hoeveel categorieën het product deelneemt. Dan kunt u gewoon where total_categories = 4
zeggen . Dit kan moeilijker te onderhouden zijn als producten vaak van categorie veranderen, omdat u dit veld constant correct moet bijwerken - en dan moet u beslissen of u dat wilt doen in toepassingscode of in een trigger of in een opgeslagen procedure ...
Normaal gesproken zou ik het geen goed idee vinden om dergelijke metadata direct in een tabel op te slaan, maar als de prestatie echt is zo slecht is het misschien het overwegen waard.