http://kaminlee.iteye.com/blog/1047996
昨天,使用PD来设计数据,从CDM->PDM->DB时,发现在CDM中建立的FK关联,居然在数据库中不能生成FK,本来想自己去DB中添加FK的,后来,想想还是去找找原因吧,反正有时间,,,十一假期吗?哈哈,我是宅程。。。
在网站找了下,也没有找到具体的文章,后来自己就开始想办法了,办法是这样的,先在DB中建个库,再建两表,加上PK+FK,反向工程至PD,这个不用我说了吧?简单,,,
最后去比较两个PDM中Referenses下的FK(就叫FK吧?)
非反向工程Referenses下的FK属性图
反向工程Referenses下的FK属性图
看到那里不一样了吗?在Implementation选择中一个是Trigger,一个是Declarative,现在找到了,那我把这里的改过来就可以了,心里这样想,注意下面的列表选项了,一开始,我只是变更Trigger怎么变都没有用,后来发现下面的这也不一样,要一起改了OK,再生成时DB中FK就有了,搞定,,,呵呵,后来一想不对呀,这时原PDM中从CDM中来的,再用CDM生成PDM时,上面属性,还是Trigger,要是再PDM中再手动改一边,FK不多还好,要是很多怎么办呀,于是,一切还得从源开始,去BAIDU吧,最近有些烦它,算了还是去SOSO,于是有搜到一篇讲的也是改动PDM来实现,还是自己去找吧?
后来回到CDM,在TOOLS-》Generate Physical Data Model 找开生成对话框,发现如下图
![](http://dl.iteye.com/upload/attachment/483063/7e8331c3-6e49-3b31-bd0a-eb43a04bdd81.jpg)
图1:
![](http://dl.iteye.com/upload/attachment/483065/bd43a914-4229-3b6a-aeb9-fb1b7ea611c6.jpg)
图2:
![](http://dl.iteye.com/upload/attachment/483067/43f9d3b8-b761-3789-bd9c-9e6de0a14465.jpg)
在图2中这样设置就可以了,当然也要注意其下面的在Default constraints下的两个选择
![](http://dl.iteye.com/upload/attachment/483069/5bf65950-adbe-39d6-bbad-035255523919.jpg)
至此完成配置。你可以重新CDM->PDM->DB看看是不OK了,,,
在生成sql的时候,需要选择
2.jpg
然后如下图修改:
1.jpg