如何解决我可以在Loopback4的hasManyThroughM:M表上创建唯一约束吗
序言
我对Loopback 4还是陌生的,我已经成功创建了2个可以正常工作的CRUD控制器,存储库,模型等。我有用户和组织,并且已经使用relation generator在用户和组织之间成功创建了M:M关系。因此,我可以创建一个用户,创建一个组织,然后分别将它们链接到一个称为“成员身份”的多对多表中。据我所知,所有这些操作均遵循其docs的环回最佳做法。
问题:
如何确保成员资格表中的每个记录都是唯一的?
here's an example of my table with duplicates
例如,用户#1 Jeff加入了组织#1 Amazon。然后一些错误的代码尝试第二次将Jeff添加到亚马逊,我希望这失败。
我当时想我可以简单地检查数据库是否存在记录,但是将这个约束添加到模型中似乎更干净,这样,如果重复进行任何插入尝试都会失败。我在文档中挖了东西,却没有发现任何东西。
感谢您的帮助!
解决方法
在数据库设计中,唯一约束将由联结表上的复合/复合键强制实施。这将强制执行一对orgId
和userId
的唯一配对。
因此,联结表应该只有2列:
- orgId
- userId
要在LoopBack 4中创建复合键,请更新穿透模型,如下所示:
// Some parts were omitted for bevity
@model()
export class OrgUser extends Entity {
@property({id: 1})
orgId: number;
@property({id: 2})
userId: number;
constructor(data?: Partial<OrgUser>) {
super(data);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。