在 M:N 关联中有一个复合键使用复合键而不是主键

我正在创建一个新数据库并且我正在使用 sequelize。我有两个表 Table1,Table2 有 m:n 关系,第三个表 Table3 有另外两个表的映射和一个字段 level

Table A {
    id : P.K
    name 
  }

 Table 2 {
    id:P.K
    name
 }

 Table 3 {
    Table1.id,Table2.id,"level"
  }

当我使用关联belongstoMany时,它正在创建其他表(Table1.id,Table2.id)的两个外键的索引

    Table1.belongtoMany(Table2,{
    through: {
       model :Table3,uninque :false
   }
}) 

    Table2.belongtoMany(Table1,{
    through : {
       model :Table3,uninque :false
   }
})

即使唯一标志为假,它仍会在 (Table1.id,Table2.id) 上创建主索引

我的问题是如何停止自动创建主索引,而是创建一个 (table1.id,table2.id,level) 的复合索引,谢谢。

edit : 我面临的问题是我需要添加多个 ("TableA.id","level" ) 绑定到 "TableB.id" 例如

Table A.id  | level | Table B.id
    1            |    1     |   10
    1            |    2     |   10   ---> not allowed

但由于 PK (TableA.id,TableB.id) 它不允许我添加第二条记录

我该如何解决这个问题,因为 Sequelize ORM 正在创建一个 PK(TableA.id,TableB.id),即使我定义了复合键 pm(TableA.id,level,TableB.id) )

我的大部分查找将基于 TableA.id 和级别组合

wmwm9433 回答:在 M:N 关联中有一个复合键使用复合键而不是主键

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/27.html

大家都在问