我有代表IoT设备的模型(名为Monitor)和代表用户的模型。每个user.hasMany(device)和device.belongsTo(user)。
这很好,但是我想添加设备的被动用户(他们无法删除设备,更改其状态等),并且每个用户都可以有很多外部设备。
用一个角色(例如“所有者”,“查看者”或拆分设备类型)创建一个联结表会更好吗?
如果联结表会更好,那么删除“所有者”用户该怎么办。仅当角色为“所有者”时,也应删除该用户的设备。那约束呢?
PS。我到目前为止已经完成的关联代码(我认为这是不正确的):
User.associate = function (models) {
User.hasMany(models.Token)
User.hasMany(models.Monitor)
User.hasMany(models.Monitor) // I'm sure that I ought to change column name or sth
User.hasOne(models.Role)
};
Monitor.associate = function(models) {
Monitor.belongsTo(models.User)
Monitor.hasMany(models.User) // WTF?
Monitor.hasMany(models.Sensor)
};
Role
和“令牌”模型用于整个系统(管理员或常规用户)的授权,而不是Monitor
中的授权。