From my MMORPG Engine – Exordium – This work is all copyrighted if you wish to implement this style of system please talk to me first!
Unlike most games where u say have 200 items this game will have about 200 parts which you can make and design your own weapons from, (There will be stock designs from blacksmiths and people can make weapons and sell them etc..)
Item code will be a series of part numbers and another byte that indicates which part number and which flare point they attach to on that part. It will be limited i think so they dont have total control but they will be able to snap in components and scale them.
struct item_component{
byte objectid;
nibble target_index;
nibble flare_point;
}
Not sure if to have max 10 components to a weapon that would give say a sword:
blade -> crossguard -> handle -> pommel = 4 components
a double blade
blade ->
crossguard -> handle -> pommel = 5 components
blade ->
a 4 bladed mace would therefore have
blade ->
blade ->
crossguard -> handle -> pommel = 7 components
blade ->
blade ->
normal stave
stave = 1 component
or
blade -> stave -> blade = 3 componets
The point of this is that each object type has weight and is classified as a attacking section, holding section or defence section.
When combined according to where the item is hel you get balance of the weapon, eg. swords you can balance by adding a weight on the end (A pommel).
Back to the item code If its 10 items per weapon I have a 5 byte serial number for the weapon (1,099,511,627,775 unique items should ensure security of items maybe ill use a 4byte serial but i know after say 40k accounts have gone through then you run out of serials every time a weapon is dropped it gains a serial number, maybe could get away with have a 4 byte because of the complexity of item codes the probality in gettinga dupe there is about 4million billion to 1).
Then ide proablly have 2 bytes for elemental code.
I may help try and compress the item code by having 1byte to say how many components it has.
so we have now
struct item(
byte elements;
item_component item_component[];
dword serial;
byte elemental;
);
max length 26bytes.
Real world example: Muonline has 20byte item codes I could probally cut that down a bit but I dont think 26 bytes is that bad, because its variable length an item would be inbetween 17 and 26bytes. averaging at 20 bytes.

Oh honey, you impress me every time! Good job on your site
I love you.