开发CMP关系的时候,是创建主键表CMP关系然后指向外键表CMP,还是反之?

04-02-04 henry.t
我用的是jbuilderx

比如数据库两个表,一个是student 对应的CMP是 studentCMP

一个是desk 对应的CMP是 deskCMP

student里面有个FIELD叫deskid是desk的主键,作为自己的外键

那么很显然,desk是主键表,student是外键表,

我现在建立了studentCMP 和 deskCMP两个CMP对应这两个表,想让studentCMP含有一个关系域 desk,反之就不用了。注意,在建立关系前,studentCMP已经含有了一个FIELD名叫 deskid了,这个是于数据表对应的。

这时我创建关系,在studentCMP上点选增加关系,然后连线指向deskCMP,然后点选Edit RDBMS Relation设置数据表关联字段,发现student表在左边。我设置完毕。

结果我到部署描述XML文件里面一看,说是主键表是student,外键表是desk,我莫名其妙。于是我删除关系,改为从deskCMP建立关系指向studentCMP,进入Edit RDBMS Relation后发现desk表在左边了,进入XML文件一看,正确,主键表是desk。

我的疑问1就是:这个关系从哪个BEAN设置是不是决定了谁是主键表谁是外键表?

我的第二个疑问:照MASTER EJB2.0里面的例子,studentCMP含的一个FIELD名叫 deskid是不能存在的,因为这个外键代表了关系,应该由关系域desk代替,所以我必须在建立关系后把这个deskid域删掉。我重新试了一次,一开始就不添加这个域,建立了关系以后进入Edit RDBMS Relation一看,发现表图中的studentCMP里面根本没有deskid这个字段,但是我又必须在这个字段和desk主键之间连线。这下我就不知道怎么办了,难道每次都要先建立外键字段,然后又删除吗???有这种莫名其妙的事情????????

henry.t
2004-02-06 17:00
为什么就没有人教一教初学者!!

猜你喜欢