【发布时间】:2017-03-02 23:25:37
【问题描述】:
我正在使用 sequelize 处理表之间的关系,但我遇到了一些麻烦。首先,我有我的课程模型,我将在其中保存主题、时期等之间的所有关系。
module.exports = function(sequelize, DataTypes) {
var Course = sequelize.define('Course', {
...
},
{
associate: function(models){
Course.hasMany(models.Schedule);
Course.belongsTo(models.Period);
Course.belongsTo(models.Room);
Course.belongsTo(models.Subject);
}
}
);
return Course;
};
我正在寻找约束键,并且我知道有了这个我可以有类似的限制,我不能通过行对列值进行相同的组合。并且也使以后更容易查询。所以这意味着在表格上添加一个额外的列?以及如何使用外键进行续集?
我查看了 sequelize 文档,发现在我需要的所有列的关联中使用此代码:
Course.belongsTo(models.Person, {foreignKey: {constraints: true}});
但这只会让每个人都有唯一的价值,而不是在所有人之间。
我还在我的日程表模型中使用此属性,我将在其中保存所有课程的所有日期和时间,并以此假装阻止重复的行,使用不同的日期组合和小时数,例如“图”
| id | days | starHr | endHr | idCourse |
| 1 | M,T,W | 7:00 | 8:00 | 1 |
| 2 | F, | 8:00 | 9:00 | 1 |
| 3 | Th | 8:00 | 9:00 | 2 |
| 4 | M,T,W | 17:00 | 18:00 | 3 |
【问题讨论】:
标签: mysql database database-design sequelize.js