Я понятия не имею об этих программах Microsoft; но я могу дать вам некоторые отзывы о дизайне.
Вам в основном нужна одна таблица для всех героев и их атрибутов и другая таблица, которая определяет, кто кого побеждает.
Вот как это сделать в postgresql. Это, вероятно, не совсем то, что вы хотите, но, возможно, вы можете извлечь из него некоторую полезную информацию:
create table hero (name varchar primary key, description varchar, size numeric);
create table defeats (stronger varchar references hero(name), weaker varchar references hero(name), reason varchar, constraint winlose_pk primary key (stronger,weaker));
Теперь пришло время заполнить таблицы:
insert into hero values ('rock', 'big and shiny', 5);
insert into hero values ('scissors', 'sharp and shiny', 4);
insert into hero values ('paper', 'white but dirty', 8);
insert into hero values ('noob', 'defeated by everything', 2);
А теперь таблица отношений:
insert into defeats values ('rock', 'scissors', 'crushing defeat');
insert into defeats values ('paper', 'rock', 'enveloped');
insert into defeats values ('scissors', 'paper', 'cut');
insert into defeats values ('rock', 'noob', 'stone to the head');
insert into defeats values ('paper', 'noob', 'finger got cut');
insert into defeats values ('scissors', 'noob', 'would not stop runnning');
insert into defeats values ('noob', 'noob', 'self explanatory');
Теперь у вас есть две таблицы:
name | description | size
----------+------------------------+------
rock | big and shiny | 5
scissors | sharp and shiny | 4
paper | white but dirty | 8
noob | defeated by everything | 2
stronger | weaker | reason
----------+----------+-------------------------
rock | scissors | crushing defeat
paper | rock | enveloped
scissors | paper | cut
rock | noob | stone to the head
paper | noob | finger got cut
scissors | noob | would not stop runnning
noob | noob | self explanatory
Теперь вы можете, например, проверить, кто сильный рок, используя этот запрос:
select * from defeats where stronger='rock';
stronger | weaker | reason
----------+----------+-------------------
rock | scissors | crushing defeat
rock | noob | stone to the head