Разумеется, так проще, но это не значит, что так правильно. Сейчас объясню почему.
Есть такая вещь - целостность данных (data integity), что значит их непротиворечивость и целостность связей.
У нас есть некое дерево категорий - категория и субкатегория, и продукты, которые находятся внутри субкатегорий. Как я понял, один продукт может находиться только в одной категории (это утверждение важно на этом этапе. Если это не так, то проблема все равно остается, просто она описывается иначе).
В правильной архитектуре продукт ссылается на подкатегорию, а подкатегория на категорию. Пользователь, меняя одну любую из этих связей, изменяет дерево категорий с продуктами, но это дерево все еще остается правильным и непротиворечивым. В самом худшем случае, когда пользователь - злоумышленник, и его действия по перелинковке зловредны, он может перелинковать подкатегории к другим категориям, продукты к другим подкатегориям, но наше дерево все еще останется непротиворечивым, а связи целостными и логичными.
В вашем случае пользователь, действия которого всегда следует рассматривать с точки зрения злого умысла (иначе как еще побеспокоиться о безопасности), должен сам задать связь категория-подкатегория. А это значит, что он может задать одну и ту же связь категория-подкатегория для одного продукта так, а для другого - иначе. И это нарушит целостность связей, а начит и целостность всей базы данных.
Например.
Есть
Продукты > Молочные > Сыр
Продукты > Молочные > Творог
Продукты > Молочные > Кефир
Химия > Краски > Зеленая
Химия > Краски > Красная
Пользователь меняет следующую связь вот так:
Химия > Молочные > Кефир
Стало
Продукты > Молочные > Сыр
Продукты > Молочные > Творог
Химия > Молочные > Кефир
Химия > Краски > Зеленая
Химия > Краски > Красная
Очевидно, целостность данных нарушена. Одна и та же подкатегория для одного продукта ссылается на одну категорию, а для другого на другую. У нас появилась ложная связь категория-подкатегория, которая разрушила целостность данных.
А все потому, что делали как проще, а не как правильно.