короче пришел к следующему решению.
если взять все возможные варианты, то получается количество записей в таблице порядка с 6 нулями. Что в принципе явно избыточно со всех точек зрения. Остановился на том, что создам около 100.000 тыщ записей, которые покроют минимум процентов 80 (а может и больше) всех вероятных поисковых запросов. На том и остановился. То есть у меня в sitemap.xml будет около 100.000 линков.
Эти 100.000 записей с обозначением продукта можно было генерировать динамически из двух таблиц с 50 записями, - экономия места в таблице (наверное не обязательно) но ресурсозатратно при каждой новой генерации. Поэтому сделал одну статическую таблицу на эти 100.000 записей, из которой за пару секунд автоматически генерится sitemap.xml.
.
То есть изначальный перфекционистский подход - оказался явно избыточным.