Qual é a melhor maneira de armazenar o inventário do personagem (consistindo em cada item com um valor para o tipo e quantidade). O único método em que consigo pensar é usar o tipo de campo "texto" e depois analisar o valor desse valor sempre que o inventário for carregado. Existe um método ou estrutura de dados melhor?
7
Respostas:
Leia sobre o design padrão do banco de dados. Formas especificamente normalizadas. Uma abordagem seria ter 3 tabelas:
personagem com um character_id e outros dados
itens com um item_id e outros dados (nomes, peso, etc ...)
inventário com caracter_id, item_id, quantidade.
O inventário de um jogador pode ser expresso como "SELECT items.name FROM items, inventário WHERE inventário.character_id = 'THECHARSID'" É claro que, com base em suas outras perguntas, eu provavelmente sugeriria o uso de um ORM que lida com isso para você. Veja Relacionamentos e retornos em algo como SQLAlchemy.
Se você precisar do conceito de 'slots' do inventário, essa é outra coluna na tabela de inventário. (IE: O personagem 32423 possui um item do tipo 832 no slot 0) (slot principal) para uma coluna item_base que define as estatísticas básicas que todos os itens desse tipo têm em comum.
fonte