【问题标题】:How to create a relation for User, groups & groups metaData using TypeORM?如何使用 TypeORM 为用户、组和组元数据创建关系?
【发布时间】:2021-05-28 14:35:31
【问题描述】:

创建 MySQL 表关系,并困惑于在 User -> Groups -> GroupsMetaData 上实现哪个关系。

User.id = OneToMany(组)

组 = 多对一(用户)

Groups.id = ManyToMany (GroupsMetaData)

GroupsMetaData = ManyToOne(Groups)

使用 TypeORM 来实现这种方法。

Users.entity.ts

  @OneToMany(type => Groups, groups => groups.uid)
  groups:Groups[]

Groups.entity.ts

  @ManyToOne(type => User, user => user.groups)
  uid:User

坚持为 Groups 和 GroupsMetaData 创建关系。

谢谢

**这不是专业的解释方式,我尝试了最好的解释

【问题讨论】:

    标签: mysql relational-database nestjs typeorm


    【解决方案1】:

    用户实体

    @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”,组元数据可以重命名为组。

    如果这回答了你的问题,请告诉我

    【讨论】:

    • 错误:未找到 User#groups 的实体元数据。检查您是否指定了正确的实体对象,以及它是否在连接选项中连接。
    • 显示您的 typeorm 配置文件,该错误意味着您没有在配置中导入实体
    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多