Metamodel inheritance

9
When I use inheritance in my meta model (let's say object 'b' derives object 'a') and there is data in both tables; what are the effects of removing the inheritance? And the same question vica versa: what are the effect of applying inheritance to existing tables with data in them? Edit: What if I add inheritance to existing tables (B derives from A). Will the XAS create a object of type A for each B in the database? If not: won't that result in errors in dataview of type B where I use some attributes from A?
asked
1 answers
6

When there is data in both tables (a and b) and inheritance is removed, the data is not removed. Both a and b are then independent tables with data of independent objects. The reason is that de Runtime cannot presume which data must be removed.

When you apply inheritance to existing tables, the data stays valid. Id's are changed (this is needed) and the data of system columns (like owner and changedby) will be moved to the table of the highest level in the inheritance tree, id's in association tables are changed, but all will be done automatically.

Addition: with inheritance (B derives from A), each row in B belongs to a specific row in A. When inheritance is added and B contains ten rows, ten new corresponding rows will be added to A. These rows have new id's and the id's in B will be updated with these id's. Columns in A will be empty for the rows that belong to rows in B, because the Runtime doesn't know which values the colums must have. After the synchronization, opening a dataview of type A or B will not cause errors.

answered