Description:
When Reverse Engineering from a database, FK icon (indicator) is missing. However, if we open a model using XML, or import using External Format MIMB, the FK indicator is visible; why this inconsistency and how can it be fixed?
Solution:
First, why the FK indicator is missing and how to display it in the model. In erwin if there is a Foreign Key (FK) and the FK indicator is missing, it is most likely because the FK index for that FK is unchecked for 'Generate'. If you right mouse click on a blank area in display, select 'Properties', and, under 'Table' tab, check the 'Display Ungenerated Indexes', you will see the FK indicator in the model.
Secondly, about the discrepancy or different behavior between importing using MIMB and Reverse Engineering directly from a database. It is important to note that this is applicable only if the database has an FK Constraint, but not a corresponding FK index for that Constraint. When Reverse Engineering, if there is a FK Constraint, erwin represents it as a relationship and also creates a FK index automatically. If there is also a corresponding FK index for that Constraint, then the Index name is replaced from the generic name with the one in the database. However, if there is no FK index in the database, and erwin creates one anyway, the 'Generate' check box is not checked. It ensures that the FK index is not generated during Forward Engineering (FE) or does not show as a difference during Complete Compare (CC). But, since the 'Generate' is unchecked for the FK index, the FK indicator is also not displayed, and the steps provided above should help with that.
However, when you create a new model and add a relationship between two Tables, the FK index is created automatically, but the 'Generate' option is also checked, even though there is no FK index created. This functionality is built-in since the early stages with the thought process that FK indexes are almost a given, so erwin 'helps' by creating them as soon as a Relationship is created. It is the same behavior when a model is created using a compatible XML file, or something else is brought in using MIMB. The XML file or other format does not have the FK index, but when erwin creates a model for that, it behaves the same as if creating a new model. Since this functionality is embedded quite deeply, changing it will require a major change, and also it is working for most users as it is. So, even though it may be looked into in the future, we hope the explanation at least clarifies the reason of this behavior.