I've been messing around making some small elements of an RPG game engine. Just today I've gotten a dialog system that pulls from XML all the NPC messages, user options, and some data that can trigger actions within the game (start quests, give gold, etc). I even made a dialog editor so that it is easy to add new messages to a dialog as well as define as to where a user option will take the dialog in the xml. I.E. Say "I'm done talking" will lead to a conversation ending message while "Who are you" takes you to a message about who the person is.
After I did this I got bored and started work on an inventory system. I've gotten it so that I have a base class Item, a class for managing inventory called Inventory, and a kind of data in-between class called InventorySlot that stores a single Item and an integer stating how many of that item is contained in this particular slot.
My concern is this, I work with MySQL all day at work and this InventorySlot class would make since as table but for a game (in C++) is this good design? Or should I be doing this some other way? I thought about doing a 2D array where  would be the item and  would be the quantity. However this would make the inventory size a constant. Using inventorySlots I can keep them all in a Vector and expand/shrink it as I need to.