You probably have a reason for using IDs, but it sounds bug-prone. You should indeed use integers, because strings are heavier on performance (according to a Unity workshop).
It may be possible to use the Resources folder in the way you want, it‘s for loading dynamically as far as I know. Maybe you find a solution in this direction.
I would load the assets into an array, and use the array ID instead of hand-named IDs, to retrieve items. I would store the array in a scriptable object, which would also make it persist across scenes.