link 与其他表的关系 Table 是正确的程序吗?

Is it a correct procedure to link a Relationship Table with other tables?

我想知道 link 与其他 table 建立关系 table 是否正确。我在 PowerDesigner 中尝试过,但它给了我一个警告。但是:在多对多关系中,我有两个 table 分别称为 "Client" 和 "Staff"。在给定的关系 table 中,我 link 在一对多关系中编辑了另外两个 table。关系 table 现在有两个主键(员工主键和客户主键)和 2 个外键。这是一个正确的程序?我有这种情况:

警告信息是:

Category Check Object Location Table Index Index inclusion Index 'generate rent history.GENERATE_RENT_HISTORY_PK' includes 'GENERATE_RENT_HISTORY_FK' ::generate rent history

table 有一个由两列组成的复合主键,并且每一列都是外键是有效的。并且其他列也是外键也是有效的。

我不熟悉 PowerDesigner,但我怀疑警告信息不是关于外键约束,而是关于冗余索引。

为了支持 PRIMARY KEY 约束,将在 (idstaff,idclient) 上添加 UNIQUE INDEX

为了支持 FOREIGN KEY 约束,我们需要一个前导列为 idstaff 的索引,以及另一个前导列为 idclient.

的索引

但是 (idstaff) 上的索引是 冗余的

我们已经有一个索引,其前导列为 idstaff...主键索引。

就table定义而言,这两个索引足以支持引用staffclient的外键约束:

 PRIMARY KEY (idstaff,idclient)
 KEY generate_rent_history_IX1 (idclient)

不需要像这样添加索引:

 KEY generate_rent_history_IX4 (idstaff)

我怀疑 PowerDesigner 被指示生成该冗余索引,并发出警告说实际上不需要该索引。

(我只是在猜测 PRIMARY KEY 中列的顺序。如果列以 idclient 作为前导列的相反方式,那么我们需要 [=14 上的索引=] 列,idclient 列上的索引将是多余的。)