postgresql - 使用 TypeORM 持久化间接相关的分层数据
问题描述
在查阅了 TypeORM 文档之后,很明显有一些选项可以使用 TypeORM 持久化分层相关的数据。Adjacency-List、Nested-Set或Closure-Table是解决这些数据结构的典型方法,但似乎它需要单个域类本身内的层次关系。这就是重点,我的情况下的数据有点不同。
我有两个不同的域类:
@Entity()
export class DomainClassA extends BaseEntity {
@PrimaryGeneratedColumn('uuid')
id: string;
@OneToMany(() => [DomainClassB], domainClassB => domainClassB.domainClassA)
domainClassBs: Promise< DomainClassB[]>;
// nullable if no domainClassA is structural root
@OneToOne(() => DomainClassB, { nullable: true })
domainClassB: DomainClassB;
}
@Entity()
export class DomainClassB extends BaseEntity {
@PrimaryGeneratedColumn()
id: string;
@ManyToOne(() => DomainClassA, domainClassA => domainClassA.domainClassBs)
domainClassA: DomainClassA;
}
DomainClassA
可以有一个列表DomainClassB
和 形成一个连贯的实例,但每个都DomainClassB
可以有另一个DomainClassA
与自己直接相关的,依此类推。
使用 json 表示,该数据如下所示:
[
{
id: 'a-1',
domainClassBs: [
{
id: 'b-1'
},
{
id: 'b-2',
domainClassA: {
id: 'b2-a1',
domainClassBs: [
{
id: 'b2-a1-b1'
},
{
id: 'b2-a1-b2'
},
{
id: 'b2-a1-b3',
domainClassA: {
id: 'b2-a1-b3-a1',
domainClassBs: [
{
id: 'another-1'
},
{
id: 'another-2'
}
]
}
}
]
}
},
{
id: 'b-3'
}
]
}
]
我想知道如何使用 SQL 对那些层次相关的数据进行建模。
有什么建议么?
解决方案
推荐阅读
- python - 根据 python 中的另一个 np.array 访问 np.array 元素
- javascript - 如何在没有客户端 JavaScript 的情况下使用 JSON 数据呈现静态 HTML?
- hadoop - 在哪些情况下我们不会为文件分配块?
- c - 指针还是地址?
- java - 正则表达式否定模式
- ios - Swift - WKWebKit - 无法在外部浏览器(Safari)中打开链接
- javascript - Javascript/JQuery 如果 cookie 不存在 接受
- wordpress - 带有 wp_list_comments() 的 Wordpress 评论顺序
- automationanywhere - Web 元素上的“设置文本”操作间歇性地生成 TYPE_021 错误
- python - 如何对熊猫中的两组列执行元素明智的操作