postgresql Postgressql引用多个值?

fumotvh3  于 2022-12-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(145)

祝你愉快!
因此,我尝试创建一个小型公司数据库,作为个人在postgresql中的学习经验。
我试图按照Derek Banas教程(这是真的很有帮助),但有一些不同的是如何处理我的产品。
到目前为止,我已经创建了这些表,如图Table list所示
在组件表中,我有一行"where_used",我想在其中放置一个引用INT,指向使用它的产品。
但是正如你所看到的,一些组件被用在多个产品中,而我只能存储一个值?
所以我的问题是
谁能给我指出正确的方向,让它工作起来?
亲切的问候,
潘南科伊克_336
我试着在谷歌上寻找解决方案,但由于我是这样一个noob我不知道如何获得正确的关键字搜索...

e3bfsja2

e3bfsja21#

在数据建模中,这种从一个超实体中获得多个子实体的技术被称为继承技术。
例如,您可以有一个名为“Vehicle”的表和一些名为“Planes”、“Boats”、“Car”的子表。

  • 主表(车辆)将具有共享属性
  • “平面”表将具有一些特定于平面的属性,等等...

当然,车辆的主键将在“飞机”,“船”和“汽车”之间以独占模式共享...从孩子的Angular 来看,表将有一个主键,也是一个外键。

kxxlusnw

kxxlusnw2#

因此,在您的示例中,您有一个链接到表“PRODUCTS”的表“COMPONENTS”
您希望在表'COMPONENTS'中有一列,您将把它命名为'where_used',说明该组件是用于x产品还是y产品。
有不同的方法做这件事,但这是我会做的:
基本上,您需要3个表:

  • 第一个是“组件”,它存储唯一的组件值
  • 第二个是“产品”,存储每个唯一的产品
  • 第三个是“COMPOSITION”(或您喜欢的任何名称),它是“COMPONENT”和“PRODUCT”之间的关联表,如下所示:

| 组件ID|产品编号|
| - ------|- ------|
| 1个|1个|
| 1个|第二章|
| 第二章|三个|
| 第二章|1个|

相关问题