Я полагаю, вы говорите, что у персонажа может быть множество листов персонажей (которые соответствуют различным типам игр), а атрибуты персонажа зависят от типа игры.Наличие широкой таблицы со всеми атрибутами вызовет у вас боль в будущем, так как атрибуты необходимо добавлять, удалять и т. Д., Поэтому я бы предложил следующую структуру:
Character
CharacterId
CharacterName
Gender
-- other fields common to all characters
GanmeType
GameTypeId
GameTypeName
--other relevant fields
GameTypeAttributes
GameTypeAttributesId
GameTypeid
AttributeName
CharacterSheet
CharacterSheetId
CharacterId
GameTypeAttributesId
AttributeValueInt
AttributeValueVARCHAR
-- column for every data type you would use
В качестве примера следующий код создаст символ с именемАрья, которая связана с игрой «Большая война»
В игре «Большая война» персонаж должен иметь атрибуты Сила, выносливость и обаяние.
Затем мы устанавливаем значения Арьи для этих атрибутов
INSERT INTO Character VALUES (1,'Arya','F');
INSERT INTO GameType VALUES (1,'Big War');
INSERT INTO GameTypeAttributes VALUES (1,1,'Strength'),(2,1,'Stamina'),(3,1,'Charisma');
INSERT INTO CharacterSheet VALUES (1,1,1,10,NULL),(2,1,2,4,NULL),(3,1,3,NULL,'None whatsoever');
Затем мы можем добавить Арью в другую игру, если захотим:
INSERT INTO GameType VALUES (2,'Fuzzy Duck');
INSERT INTO GameTypeAttributes VALUES (4,2,'Stomach Strength'),(5,2,'Fearlessness'),(6,2,'Bravery');
INSERT INTO CharacterSheet VALUES (4,1,4,10,NULL),(5,1,5,4,NULL),(6,1,6,NULL,'Enourmous amounts');