Hmm, well I took on a project like this some time ago; I wrote it as a base script, since I had intended to make a durability and socketing script later. I finished it, but I never finished the durability or socketing so I never released it. I can look for it and share that if you want.
I believe what I had done was create a new hash that held every new item that was created and saved it in the save files. I made a new Game_Weapon, Game_Armor, etc... class so that each time a new item is given, one of those are created and it is saved in the hash, and when you accessed the id of that object, it would point to its position in the hash, rather than its database ID. I think that was basically how it worked. I could release the Instance Items Base script if you want, and you could look at it and maybe get some ideas. I don't know if how I did it was the best way or not though.