In the upgrade system I made, that is exactly what I've done.
The options are limited, I just wanted a short demo game to prove it worked.
The system is simple enough, but the main drawback is that you have to add each new item manually to the database.
This is necessary though for the reason you mentioned earlier, you don't want to globally edit the stats of one weapon for every character using it.