kenxjs - 将一列引用到两列
kenxjs - Reference one column to two columns
如何修复此代码?
我想将 recordId
引用到 tickets
和 packages
表中的 ids 列。
createTable(`payments`, function(t){
t.increments();
t.integer('userId').references('id').inTable(`users`).unsigned().onDelete('cascade');
t.integer('recordId')
.references('id').inTable(`tickets`).unsigned().onDelete('cascade');
t.integer('recordId')
.references('id').inTable(`packages`).unsigned().onDelete('cascade');
t.string('peyFro');
t.string('gateway').notNullable();
t.string('authority').notNullable();
t.integer('amount').notNullable();
t.string('status').notNullable();
t.dateTime('createdAt').defaultTo(knex.fn.now());
})
试试foreign函数:
t.integer('recordId').unsigned();
t.foreign('recordId','payment_ticket_fk').references('tickets.id').onDelete('cascade');
t.foreign('recordId','payment_package_fk').references('packages.id').onDelete('cascade');
不过,将一个 FK 列链接到多个 PK 似乎是糟糕的设计(这可能会导致错误的数据)。也许你可以有两个不同的 FK 列。
如何修复此代码?
我想将 recordId
引用到 tickets
和 packages
表中的 ids 列。
createTable(`payments`, function(t){
t.increments();
t.integer('userId').references('id').inTable(`users`).unsigned().onDelete('cascade');
t.integer('recordId')
.references('id').inTable(`tickets`).unsigned().onDelete('cascade');
t.integer('recordId')
.references('id').inTable(`packages`).unsigned().onDelete('cascade');
t.string('peyFro');
t.string('gateway').notNullable();
t.string('authority').notNullable();
t.integer('amount').notNullable();
t.string('status').notNullable();
t.dateTime('createdAt').defaultTo(knex.fn.now());
})
试试foreign函数:
t.integer('recordId').unsigned();
t.foreign('recordId','payment_ticket_fk').references('tickets.id').onDelete('cascade');
t.foreign('recordId','payment_package_fk').references('packages.id').onDelete('cascade');
不过,将一个 FK 列链接到多个 PK 似乎是糟糕的设计(这可能会导致错误的数据)。也许你可以有两个不同的 FK 列。