PowerDesigner参照(Reference)

本文详细介绍了PowerDesigner中参照完整性的设置方法,包括对修改和删除操作的不同约束选项及其产生的效果,如None、Restrict、Cascade等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PowerDesigner参照(Reference)
参照在数据库设计中是一个比较复杂的问题,它是实现数据的完整性主要要素之一,详细论述参考后面数据的约束。

在PowerDesigner中,可对参照完整性进行各项设置,参照的基数从0到n,对修改和删除约束可分别设置为None、Restrict、Cascade、Set Null、Set Default。由于INSERT包含在UPDATE操作中,因此没有单独的INSERT约束。

约束的不同设置产生不同的效果,以修改为例(删除相同):


None:父表修改,子表不影响。

Restrict:父表修改,如果子表存在,则出错。

Cascade:父表修改,如果子表存在,则相应的修改。

Set Null:父表修改,如果子表存在,则相应置空。

Set Default:父表修改,如果子表存在,则相应置默认值。
### PowerDesigner中外键的创建 在外键的设计过程中,PowerDesigner提供了多种方式来建立两个表之间的关联。当在一个物理模型中定义外键时,目标表(即被引用的表)必须已设有主键[^2]。 对于源表(即包含外键的表),如果其中不存在可以匹配目标表主键的列,则可以通过使用`Reference`工具,在源表内自动生成新的外键列。这一步骤可通过图形界面完成:只需点击工具栏里的`Reference`图标,接着从源表拖动至目标表释放鼠标即可。此时,若源表缺少相应的外键字段,PowerDesigner将会自动为其添加一个新的字段用于存储外键值,并建立起两者间的参照约束关系[^3]。 然而,假定源表里已经有了能对应上目标表主键的一个或多个候选列,那么可以直接利用这些现有的列作为外键而不必新增加任何额外的列。同样地,这也是借助`Reference`功能实现;所不同的是,在这种情形下不会产生新的数据列,而是仅对外键进行配置处理。 另外还有一种情况,就是虽然源表中有某些列看起来像是应该成为外键,但实际上它们的名字并不完全一致或者出于其他原因不适合直接充当外键角色。针对这种情况,有两种解决方案可供选择: - **方案一**:移除那些不合适做外键的旧列,并按照前述的方法重新引入正确的外键列; - **方案二**:右键单击代表外键关系的连线,进入其属性对话框调整映射规则,指定哪些现有列为实际意义上的外键。 ```sql ALTER TABLE B ADD CONSTRAINT FK_B_A FOREIGN KEY (ColumnInB) REFERENCES A(PrimaryKeyOfA); ``` 上述SQL语句展示了如何手动编写命令以在数据库层面显式声明一张名为`B`的表格中的某列(`ColumnInB`)作为另一张叫做`A`的数据集主键(`PrimaryKeyOfA`)的外部引用实例。不过值得注意的是,在PowerDesigner环境中通常不需要手工输入这样的指令,因为软件本身已经内置了便捷的操作流程帮助用户轻松达成同样的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值