我正在创建一个新数据库并且我正在使用 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 和级别组合