异议insertGraph,插入新的并且与现有行相关或与之相关

时间:2018-10-03 13:42:27

标签: javascript mysql node.js knex.js objection.js

因此,我对MySQL的关系,升级等并不了解。我正在寻找有关如何(如果可行)的解释。

[
  {
    scheduledAt: '17:55',
    league: { name: 'Champions League - Group Stage' }
  },
  {
    scheduled_at: '19:45',
    league: { name: 'Champions League - Group Stage' }
  },
  {
    scheduled_at: '19:30',
    league: { name: 'Primera B Metropolitana' },
  },
  {
    scheduled_at: '21:00',
    league: { name: 'Primera B Metropolitana' }
  }
]

说我想插入此数据图。根对象将进入fixtures表,并且league属性是Fixtures模型中的这种关系。

{  
  league: {
    relation: Model.BelongsToOneRelation,
    modelClass: `${__dirname}/League`,
    join: {
      from: 'fixtures.league_id',
      to: 'leagues.id'
    }
  }
}

因此,当前,如果我使用insertGraph插入所有这些数据。它既可以插入fixturesleagues表中,又可以按照您的期望进行关联。

{
  "scheduled_at": "17:55",
  "league": {
    "name": "Champions League - Group Stage",
    "created_at": "2018-10-03T13:02:03.995Z",
    "id": 1
  },
  "league_id": 1
  "created_at": "2018-10-03T13:02:04.042Z",
  "id": 1
}

但是,如果我插入完全相同的League对象,它将只创建另一个重复的League和夹具行,并使用下一个递增的ID(在本例中为2)

是否有可能找到该名称的联赛,然后将该行/ ID用作league_id,就像这样:

{
  "scheduled_at": "17.55",
  "league_id": 1
  "created_at": "2018-10-03T13:02:04.042Z",
  "id": 2
}

抱歉,如果我对此进行了可怕的解释。但是我对术语不是很热衷,所以我不知道我实际上要做什么。我觉得这很容易,但也许我的结构或方法是错误的。

0 个答案:

没有答案