【发布时间】:2020-02-06 02:35:45
【问题描述】:
如果有两个通用的类字典表。一种由类别组成,另一种由类别项组成。另外我有一个特定的表,它必须与适当类别的类别项目之一相关。示例如下:
分类表
id | title
-------------------
0 | payment type
1 | vehicle type
分类项目表
id | title | category_id
-----------------------------
0 | hourly | 0
1 | full time | 0
2 | motorcycle | 1
3 | bus | 1
员工表
id | name | payment_type
------------------------
0 | Mike | 1
1 | Josh | 0
2 | Anna | 1
所以我需要 Employees 表 的列 payment_type 只能包含 Categories items 表中的那些 ids属于类别表中的支付类型
我如何在 Postgres 中做到这一点?如果可能的话,我怎么能用 typeorm 做到这一点?
【问题讨论】:
-
这是您拥有并且可以修改的架构吗?简单的答案是为每个域创建单独的父查找表,而不是制作单个通用查找表。在此示例中,您最终会得到
payment_type和vehicle_type作为单独的表,每个表有两行。 -
是的,这实际上是我的宠物项目。但为什么我最终会得到单独的表格?我用触发器实现了它,效果很好
-
A previous question 进行了一些很好的讨论。特别是,它引用了this article,它将单一查找列为模型中要避免的第一个反模式。
标签: sql postgresql ddl typeorm