【发布时间】:2019-09-21 16:57:21
【问题描述】:
我正在使用 typeORM 创建一个快速应用程序来帮助将我的对象映射到我的数据库。我希望创建一个追随者系统。我有一个用户实体的基本布局,如下所示。但是,这会创建两个连接表。我希望只有一个表符合“user_follows_user”,其中userId_1 跟随userId_2。我希望能够记录每个用户的关注者数量和关注者数量。这可能吗?我仍然没有完全理解我的代码中发生了什么。
import { Entity, PrimaryGeneratedColumn, Column, ManyToMany, JoinTable, RelationCount } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Column()
email: string;
@Column()
password: string;
@Column()
bio: string;
@ManyToMany( type => User, user => user.followers )
@JoinTable()
following: User[]
@ManyToMany( type => User, user => user.following )
@JoinTable()
followers: User[]
@RelationCount((user: User) => user.followers)
followersCount: number;
@RelationCount((user: User) => user.following)
followingCount: number;
}
运行我的代码后,我的数据库架构如下所示: https://imgur.com/XfXjfGq
如上所述,我觉得只需要一张桌子。尽管我对使用此 ORM 的追随者系统的其他合理模式持开放态度。
【问题讨论】:
标签: node.js postgresql express typeorm