sle*_*_pf 6 database postgresql sequelize.js
是否可以在Sequelize中引用复合主键?
我正在开发一个网络应用程序,可帮助组织厨房垃圾。该餐厅将其数周和数月的时间分为“期间”,9月的第一周为“ 9.1”。对于每个时期,我需要创建一批新的配料对象,以跟踪其在那个时期的价格和数量。我认为最好使句点主键成为月份和星期的组合,因为这在数据库中是唯一的。我可能会在以后加上年份,但这不会改变我的问题。
我正在使用的数据库是Postgres。
这是我的sequelize种子文件中的周期表模型:
.then(() => queryInterface.createTable('periods', {
month: {
type: Sequelize.INTEGER,
validate: {
max: 12,
min: 1
},
unique: "monthWeekConstraint",
primaryKey: true
},
week: {
type: Sequelize.INTEGER,
validate: {
max: 4,
min: 1
},
unique: "monthWeekConstraint",
primaryKey: true
},
createdAt: {
type: Sequelize.DATE
},
updtedAt: {
type: Sequelize.DATE
}
}))
Run Code Online (Sandbox Code Playgroud)
我想在我的periodItems表中引用存储在上表中的期间,该表(我不正确地)看起来像:
.then(() => queryInterface.createTable('periodItems', {
periodMonth: {
type: Sequelize.INTEGER,
references: {model: 'periods', key: 'monthWeekConstraint'}
},
periodWeek: {
type: Sequelize.INTEGER,
references: {model: 'periods', key: 'monthWeekConstraint'}
},
day: {
type: Sequelize.INTEGER,
validate: {
min: 1,
max: 7
}
},
...other irrelevant fields...
}))
Run Code Online (Sandbox Code Playgroud)
我绝对不是数据库的新手,所以我很抱歉。我还有其他几张桌子可以做我想做的事,但是我在这个问题上呆了几天。
尽管可以通过指定primaryKey: true多个列来在Sequelize中创建复合主键(如上所述),但是Sequelize当前不支持复合外键,因此无法引用具有以下内容的模型/表:复合主键。
有关此主题的讨论,请参见https://github.com/sequelize/sequelize/issues/311。
| 归档时间: |
|
| 查看次数: |
5588 次 |
| 最近记录: |