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