Це, здається, багато для багатьох відносин ....
Для того, щоб відобразити багато-багато відносин, вам буде потрібно інший стіл
categories_products(id, category_id, product_id)
тому один продукт може потрапити під багатьма категоріями, і однаковою категорією може бути багато продуктів.
Таблиця продуктів матиме один-багато відносин із таблицею categories_products
Таблиці категорій також матимуть один-багато поряд з таблицею categories_products
це стандартний спосіб реалізації багатьох для багатьох відносин