【发布时间】:2016-11-03 21:11:28
【问题描述】:
我有一个用户表和一个用户属性表。每个用户只能有每个 userAttribute 的一个实例,所以我想为列 name 和 userId 创建一个复合唯一索引(由 userAttributes.belongsTo 创建。)如何做到这一点?
UserAttribute = sequelize.define('userAttributes', {
name: {
type: Sequelize.STRING,
allowNull: false,
unique: 'nameIndex',
validate: {
isIn: [['phone', 'name','driverRequest']],
}
},
value: {
type: Sequelize.STRING,
allowNull: false
},
});
User.hasMany(userAttributes, {unique: 'nameIndex'});
userAttributes.belongsTo(User, {unique: 'nameIndex'});
我尝试添加唯一的nameIndex但没有成功,它似乎只适用于name-column。
【问题讨论】:
-
我已经修改了下面的示例以使用复合索引,我认为它应该可以工作,如果它没有,请告诉我
-
您在数据模型中手动添加了 useId 吗?我也缺少价值属性?
-
有些东西我真的看不懂。您写道:“每个用户只能拥有每个 userAttribute 的一个实例,因此我想为列 name 和 userId 创建一个复合唯一索引”。我相信这两个索引(userId 和 name)保存在 userAttribute 中,如果我错了,请纠正我。在您提供的以下代码中,我可以看到新字段“值”,我不确定它的含义,您能提供更多信息吗?或解释我在哪里遗漏了问题上下文?
标签: node.js sequelize.js