最近两天在使用pd设计数据库模型的时候遇到了一些问题及知识点,遂做一下总结
1.cardinality问题
在设置实体间的联系基数,也就是cardinality时,以学生——成绩实体为例

我们知道,一个用户对应多科成绩(这里的基数都有包含0,目的是为了使实体之间没有强联系,到时数据库操作不会有违反约束),则有
成绩to用户 为 0,1 ,意思是对于成绩来说,用户不是强制(Mandatory)的,一个成绩对应0到1个用户
用户to成绩 为 0,n ,意思是对于用户来说,成绩不是强制(Mandatory)的,一个用户对应0到n个成绩
当然,如果你的基数cardinality从1开始时,Mandatory也会自动勾选上,这样的话在后面生成的物理模型的外键也会是M,也就是必须对应到某个其它实体,这样就比较不自由了,虽然也有好处,这里就不多说了。
2.一对一问题
在两个实体一对一时,我发现,如果不在联系设置页面声明主导实体,最后生成的物理模型中,这两个实体会各自包含对方的id,我说的这个声明主导实体,也就是 dominant role,以课程——教材为例

这里课程->教材,指的是课程支配(主导)教材,最后生成的物理模型就会是正常的 教材实体 里面包含课程id了
3.生成物理模型问题
一开始我用MySQL5.0版本生成物理模型,点开模型一看里面的实体,虽然各个表都有其他表的id,但是这些表项的F却是没勾选上的,这导致在后面

本文总结了在使用Power Designer设计数据库模型时遇到的三个关键问题:1) 如何设置正确的基数(cardinality),以避免约束冲突;2) 解决一对一关系中主导实体的设定,确保物理模型正确反映实体间关系;3) 版本问题导致的外键创建错误,通过升级到MySQL 4.0版本得到解决。
最低0.47元/天 解锁文章
4203

被折叠的 条评论
为什么被折叠?



