我想知道将关系表与其他表链接是否正确。我在PowerDesigner中尝试过,但是它给了我一个警告。但是:在多对多关系中,我有两个表,分别称为“客户”和“工作人员”。在给定的关系表中,我以一对多的方式链接了其他两个表。关系表现在具有两个主键(职员主键和客户主键)和2个外键。这是正确的程序吗?我有这种情况:警告消息是:  类别检查对象位置  表索引索引包含索引'生成租金历史记录。GENERATE_RENT_HISTORY_PK'包括'GENERATE_RENT_HISTORY_FK'::生成租金历史记录 最佳答案 一个表具有由两列组成的复合主键,对于这些列中的每一列都是外键是有效的。并且具有其他也是外键的列也是有效的。我不熟悉PowerDesigner,但我怀疑警告消息与外键约束无关,而与冗余索引有关。为了支持PRIMARY KEY约束,在UNIQUE INDEX上将是(idstaff,idclient)。为了支持FOREIGN KEY约束,我们需要索引的前导列为idstaff的索引和另一个索引的前导列为idclient的索引。但是(idstaff)上的索引是多余的。我们已经有一个索引,其前导列为idstaff ...主键索引。就表定义而言,这两个索引足以支持引用staff和client的外键约束: PRIMARY KEY (idstaff,idclient) KEY generate_rent_history_IX1 (idclient)无需添加这样的索引: KEY generate_rent_history_IX4 (idstaff)我怀疑正在指示PowerDesigner生成该冗余索引,并发出警告,指出实际上不需要该索引。(我只是在猜测PRIMARY KEY中各列的顺序。如果这些列与idclient作为前导列相反,那么我们需要idstaff列上的索引,而列将是多余的。)关于mysql - 将关系表与其他表链接是否正确?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42125365/
10-12 03:24