Схема Flatbuffer для Redux-ORM Models, Определение взаимосвязи между таблицами - PullRequest
0 голосов
/ 11 марта 2020

У меня есть вопрос о правильном определении отношений в Redux-ORM Models на основе схемы flatbuffer.

У меня есть следующая схема Flatbuffer:

    table Team{
        allMembers : [Member];
    }

, поэтому я создал два модели для Redux-ORM, как показано ниже.

    class Team extends Model{}
    Team.modelName = 'Team'
    Team.fields = {
    }

    class Member extends Model{}
    Member.modelName = 'Member'
    Member.fields = {
        allMembersById : fk({to:'Team', as:'team', relatedName:'allMembers'}),
    }

ситуация усложняется, когда я добавляю следующие поля:

    table Team{
        allMembers : [Member];
        blueSquad : [Member];
        redSquad : [Member];
    }

Теперь возникает вопрос, стоит ли мне использовать внешние ключи или это другой тип отношений?

    class Member extends Model{}
    Member.modelName = 'Member'
    Member.fields = {
        allMembersByTeamId : fk({to:'Team', as:'allMembersTeam', relatedName:'allMembers'}),
        blueSquadByTeamId : fk({to:'Team', relatedName:'blueSquad'}),
        redSquadByTeamId : fk({to:'Team', relatedName:'redSquad'}),
    }

, потому что, если я добавлю поле 'as' к другим определениям в соответствии с соглашением об именах ...

    allMembersByTeamId : fk({to:'Team', as:'allMembersTeam', relatedName:'allMembers'}),
    blueSquadMembersByTeamId : fk({to:'Team', as:'blueSquadMembersTeam', relatedName:'blueSquadMembers'}),
    redSquadMembersByTeamId : fk({to:'Team', as:'redSquadMembersTeam', relatedName:'redSquadMembers'}),

Я могу прочитать это как:

    Member.allMembersTeam        // <- is a Team where i belong
    Member.blueSquadMembersTeam // <- is a Team where i am in blueSquad
    Member.redSquadMembersTeam // <- is a Team where i am in redSquad

Что говорит о том, что это уже отношение «многие».

Конечно, я могу добавить промежуточную модель MembersGroup, но я бы хотел ее избежать .

Я немного сбит с толку и не знаю, правильно ли я понимаю взаимосвязь между таблицами. Пожалуйста, скажите мне, если я прав, и определенно, если нет. Итак, наконец, у меня есть два вопроса. Имеет ли смысл это отображение схемы flatbuffer и модели Redux-ORM? Однако, если это отношение «много», на что мне обратить внимание?

...