Hello,
EA's database modelling is not implemented as a UML profile with tagged values to represent what can't be expressed using the built-in metamodel, but rather as a hack which reinterprets certain properties of attributes (= columns) and uses operations in a way that I for one am unable to square with the UML.
Since this is the case, and since visibility doesn't apply to relational databases, wouldn't it be a good idea to make use of attribute visibility in imported database models?
Something along the lines of:
- Public: foreign keys, and columns used in other tables' foreign keys
- Protected: primary keys
- Private: everything else
What purpose would this serve?
Well since the data modeling diagram is not a hack but just another diagram type, it has no special features to reflect the fact that its contents are tables. So you can't choose to just display foreign or primary keys, but you can restrict what "class members" are shown based on visibility.
So with this addition, you could use the "visible class members" feature to choose which categories of column to display: those relevant in the context of other tables (foreign keys and their targets), primary keys, and/or regular data columns.
I think this is a brilliant idea, and not hard to implement either.
/Uffe