mysql - 如何使用 TypeORM 为用户、组和组元数据创建关系?
问题描述
创建 MySQL 表关系,并困惑于在 User -> Groups -> GroupsMetaData 上实现哪个关系。
User.id = OneToMany(组)
组 = ManyToOne(用户)
Groups.id = 多对多(GroupsMetaData)
GroupsMetaData = ManyToOne(Groups)
使用 TypeORM 来实现这种方法。
用户实体.ts
@OneToMany(type => Groups, groups => groups.uid)
groups:Groups[]
Groups.entity.ts
@ManyToOne(type => User, user => user.groups)
uid:User
坚持为 Groups 和 GroupsMetaData 创建关系。
谢谢
**这不是专业的解释方式,我尝试了最好的解释
解决方案
用户实体
@OneToMany(type => Groups, groups => groups.uid)
groups:Groups[]
集团实体
@ManyToOne(type => User, user => user.groups)
user: User
@ManyToOne(type => GroupMetadata, gmeta => gmeta.groups)
details: GroupMetadata
组元数据实体
@OneToMany(type => Groups, groups => groups.uid)
groups: Groups[]
使用组作为联结表的用户和组元数据之间的多对多关系。我建议您更改某些表的名称,组可以称为“user_group”,组元数据可以重命名为组。
让我知道这是否回答了您的问题
推荐阅读
- google-app-engine - 解析 go.mod 时出错 如何使用 Cloud build 在 App Engine 上部署 go 应用程序?
- c# - 图像字节数组未正确保存到数据库
- sprite-kit - SpriteKit 有限制吗?
- python - Django ModelChoiceField 自动选择视图传递值
- javascript - 如何获取、解决和验证传递/循环依赖
- java - 如何测试IO异常?
- r-markdown - 如何解决 rmarkdown 到涉及 tikz 设备的乳胶错误
- python - python - 如何在python unittest中每次使用不同的参数断言多个方法调用?
- windows-10 - Win 10 教育:激活限制?
- javascript - 如何使用 fetch 将按钮的名称或 ID 传递给 Node