外键一对多(postgresql、php、yii2)

外键一对多(postgresql、php、yii2),php,postgresql,yii2,Php,Postgresql,Yii2,你好 我只是yii2和postgresql的初学者。 我有这样的问题: 第一张表: tbl_printer (PK dept_id and id) | dept_id | id | name | 第二桌 tbl_printer_group (PK dept_id and id) | dept_id | id | printer1 | printer2 | printer3 | printer1,printer2,printer3数据/值来自tbl\u printer.id 如果打印机(i

你好

我只是yii2和postgresql的初学者。 我有这样的问题:

第一张表:

tbl_printer (PK dept_id and id)

| dept_id | id | name |
第二桌

tbl_printer_group (PK dept_id and id)

| dept_id | id | printer1 | printer2 | printer3 |
printer1
printer2
printer3
数据/值来自
tbl\u printer.id

如果打印机(id)仍在
tbl\u打印机组使用,我想“不允许删除”
tbl\u打印机
(打印机1、打印机2、打印机3)。如果外键没有错,从父级到子级是一对一,但这是一对多

如何解决这个问题,我正在使用php、yii2和postgresql


感谢并抱歉我的英语

外键是通过以下方法添加的:

最后两个选项分别用于更新时的
和删除时的

大多数DBMS支持以下选项:
限制
级联
无操作
设置默认值
设置空值

请注意,您可以指定数组而不是
category\u id
id
列:

如果有多个列,请用逗号分隔它们或使用 数组

框架为此提供了最常用和最需要的方法,但请记住,您始终可以在迁移中执行自定义SQL,只需编写:

$this->execute('YOUR CUSTOM SQL QUERY');

通过以下方法添加外键:

最后两个选项分别用于更新时的
和删除时的

大多数DBMS支持以下选项:
限制
级联
无操作
设置默认值
设置空值

请注意,您可以指定数组而不是
category\u id
id
列:

如果有多个列,请用逗号分隔它们或使用 数组

框架为此提供了最常用和最需要的方法,但请记住,您始终可以在迁移中执行自定义SQL,只需编写:

$this->execute('YOUR CUSTOM SQL QUERY');

谢谢arogachev,所以我必须用php编写代码。我想我们可以使用外键等数据库功能…非常感谢您的支持response@mltobing我们可以在迁移过程中为最常见的数据库功能使用方法,但框架不能为所有特定的数据库功能提供抽象,例如PostgreSQL。谢谢arogachev,所以我必须用php编写代码。我想我们可以使用外键等数据库功能…非常感谢您的支持response@mltobing我们可以在迁移中为大多数常见的数据库功能使用方法,但框架不能为所有特定的数据库功能提供抽象,例如PostgreSQL。