我正在创建一个项目,在这里我将NestJS和TypeORM用于我的数据库服务。
当前我有一个架构,用户可以在其中建立名为userMate
在此列中,我要有一个复合主键,它由构成这样的关系的两个UserID组成
UserTable -> UserMate
id: ... user1: id]
-> Compound primary key
name: ... user2: id]
... ....
在我的代码中,我对如何实现这种关系有些疑问。
@OneToMany(type => UserMate, userMate => userMate.user1)
user1: UserMate[];
无法保证用户是user1还是user2,因此很难在数据库级别强制执行此规则。
或者,可以应用一些业务逻辑来确定哪些用户将分别保存在user1
和user2
中,但是仍然无法知道哪一个是对它的引用外键。
有人以前遇到过这种问题吗?