与一个所有者和多个用户同步模型

时间:2019-05-05 21:45:43

标签: node.js sequelize.js

我有代表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中的授权。

0 个答案:

没有答案