User action | Key migration results |
---|---|
Add an attribute to a primary key | If the primary key takes part in a relationship, then the attribute is migrated to the child entity as a foreign key attribute. If the relationship is identifying, then the migrated attribute is also included as part of the primary key attributes for the child entity. If the attribute is already part of a foreign key, the rest of the foreign key attributes are already part of primary key, and the relationship is non-identifying, then the relationship is changed to identifying. |
Remove an attribute from a primary key | If the primary key takes part in a relationship, then the attribute that had been migrated to the child entity as a foreign key is removed from the foreign key attributes list. If the relationship is identifying, then the migrated attribute is also removed from the primary key attributes list for the child entity. If the attribute is already part of a foreign key and the relationship is identifying, then the relationship is changed to non-identifying. |
Reorder the attributes of a primary key | If the primary key takes part in a relationship, then the migrated attributes in the foreign key are reordered to match the primary key. |
Delete a primary key | If the primary key participates in relationships, then the associated relationships and empty foreign keys are kept. |
Modify the data type of an attribute | If the attribute is part of a primary key and the primary key takes part in a relationship, then the data type of the migrated attribute on the child entity is also changed. |
Modify the length, precision, or scale of a data type for an attribute | If the attribute is part of a primary key and the primary key takes part in a relationship, then the data type length, precision, or scale of the migrated attribute on the child entity is also changed. |
Delete an attribute | If the attribute is part of primary key or alternate key and the primary key or alternate key participates in a relationship, then the migrated attribute on the child entity is removed from the child foreign key attribute list. If the relationship is identifying, then the migrated attribute on the child entity is also removed from the child primary key attribute list. |
Add an attribute to an alternate key | If the alternate key takes part in a relationship, then the attribute is migrated to the child entity as a foreign key attribute. If the relationship is identifying, then the migrated attribute is also included as part of the child entity's alternate key attributes. If the attribute is already part of a foreign key, the rest of the foreign key attributes are already part of alternate key, and the relationship is non-identifying, then the relationship is changed to identifying. |
Reorder the attributes of an alternate key | No key migration occurs. |
Remove an attribute from an alternate key | If the primary key takes part in a relationship, then the migrated attribute on the child entity is removed from the child foreign key attribute list. If the relationship is identifying, then the migrated attribute on the child entity is removed from the primary key attribute list for the child entity. |
Delete an alternate key | If the alternate key participates in relationships, then the associated relationships and empty foreign keys are kept. |
Add an attribute to a foreign key | No key migration occurs. |
Reorder the attributes of a foreign key | No key migration occurs. |
Remove an attribute from a foreign key | If the attribute is part of a primary key or alternate key and the primary key or alternate key participates in a relationship, then the migrated attribute on the child entity is removed from the child foreign key attribute list. Otherwise, no key migration occurs. |
Delete a foreign key | The associated relationship is deleted from the child entity. |
Add a relationship | If the relationship is an identifying relationship, the migrated attributes become part of the foreign key and the primary key of the child entity. If the relationship is a non-identifying relationship, the migrated attributes become part of the foreign key of the child entity. If the relationship is a many-to-many relationship, no key migration occurs. |
Delete an identifying relationship | The associated foreign key is deleted from the child entity. |
Delete a non-identifying relationship | The associated foreign key is deleted from the child entity. |
Delete the parent entity of a relationship | All migrated key attributes are removed from the foreign key of the child entity. |
Modify the type of a relationship | If the relationship is changed from identifying to non-identifying, then foreign key attributes are removed from the primary key of the child entity. If the relationship is changed from non-identifying to identifying, then foreign key attributes are added to the primary key of the child entity. |
Create a generalization between two entities |
|
Delete a generalization |
|
Delete a supertype entity |
|
Delete a supertype primary key |
|
Delete a primary key attribute of a supertype entity |
|
Add a new primary key attribute to a supertype entity |
|
Modify a primary key attribute of a supertype entity |
|
Reorder a primary key attribute of a supertype entity |
|