[Teneo] Help needed with inherance mapping [message #82105] |
Sat, 05 May 2007 10:59  |
Eclipse User |
|
|
|
Hi,
I have a pretty complex ecore model implementing the KDM (Knowledge
Discovery MetaModel) OMG standard. This meta-model is built just like
MOF (ecore) in that every class is actually a subclass of the top class
called element. There are also a ton of relation, as it is based on
entity relation. There are also a number of abstract classes in the
model and deep classes hierarchies.
When I use the single_table (default), the database creation fails since
MySql doesn't support more than 64 indexes. The number of tables is
about 30 if I recall correctly.
When I use the joined strategy, I get a database with 269 tables and
many tables are essentially empty, being just there to perform join.
This looks like it will not perform well. Also another posting on the
forum mentioned a limit of 61 joined tables, which I am quite sure would
be exceeded here.
Then I tried the table_per_class strategy and this gave me the just
reported error with the FK name length. But it also ended up with still
230 tables in the db (a quick count a model impl classes gives me 168
classes).
The documentation also briefly talks about the MappedSuperClass strategy
that could be used.
What are you suggestions and what have been seen to be best suited to
the kind of model that I am dealing with.
Regards
Alain
|
|
|
Re: [Teneo] Help needed with inherance mapping [message #82205 is a reply to message #82105] |
Sun, 06 May 2007 09:49  |
Eclipse User |
|
|
|
Hi Alain,
From a modeling perspective I like the joined-table strategy because it best reflects the
inheritance structure.
You can use the MappedSuperClass annotation for the topclass(es) but then references to the topclass
are not persisted correctly in the db. If there are no references to the topclass(es) then you can
try to flatten the inheritance structure by declaring part of the top as a mappedsuperclass and then
for the remaing parts choose the inheritance strategy which fits best. Different inheritance trees
can have different inheritance strategies.
With empty tables you mean join tables for the inheritance structure (which would mean that there
are empty eclasses) or join tables to persist references? Join tables for references are required
for many-to-many and non-unique one-to-many relations.
gr. Martin
Alain Picard wrote:
> Hi,
>
> I have a pretty complex ecore model implementing the KDM (Knowledge
> Discovery MetaModel) OMG standard. This meta-model is built just like
> MOF (ecore) in that every class is actually a subclass of the top class
> called element. There are also a ton of relation, as it is based on
> entity relation. There are also a number of abstract classes in the
> model and deep classes hierarchies.
>
> When I use the single_table (default), the database creation fails since
> MySql doesn't support more than 64 indexes. The number of tables is
> about 30 if I recall correctly.
>
> When I use the joined strategy, I get a database with 269 tables and
> many tables are essentially empty, being just there to perform join.
> This looks like it will not perform well. Also another posting on the
> forum mentioned a limit of 61 joined tables, which I am quite sure would
> be exceeded here.
>
> Then I tried the table_per_class strategy and this gave me the just
> reported error with the FK name length. But it also ended up with still
> 230 tables in the db (a quick count a model impl classes gives me 168
> classes).
>
> The documentation also briefly talks about the MappedSuperClass strategy
> that could be used.
>
> What are you suggestions and what have been seen to be best suited to
> the kind of model that I am dealing with.
>
> Regards
> Alain
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Help needed with inherance mapping [message #605313 is a reply to message #82105] |
Sun, 06 May 2007 09:49  |
Eclipse User |
|
|
|
Hi Alain,
From a modeling perspective I like the joined-table strategy because it best reflects the
inheritance structure.
You can use the MappedSuperClass annotation for the topclass(es) but then references to the topclass
are not persisted correctly in the db. If there are no references to the topclass(es) then you can
try to flatten the inheritance structure by declaring part of the top as a mappedsuperclass and then
for the remaing parts choose the inheritance strategy which fits best. Different inheritance trees
can have different inheritance strategies.
With empty tables you mean join tables for the inheritance structure (which would mean that there
are empty eclasses) or join tables to persist references? Join tables for references are required
for many-to-many and non-unique one-to-many relations.
gr. Martin
Alain Picard wrote:
> Hi,
>
> I have a pretty complex ecore model implementing the KDM (Knowledge
> Discovery MetaModel) OMG standard. This meta-model is built just like
> MOF (ecore) in that every class is actually a subclass of the top class
> called element. There are also a ton of relation, as it is based on
> entity relation. There are also a number of abstract classes in the
> model and deep classes hierarchies.
>
> When I use the single_table (default), the database creation fails since
> MySql doesn't support more than 64 indexes. The number of tables is
> about 30 if I recall correctly.
>
> When I use the joined strategy, I get a database with 269 tables and
> many tables are essentially empty, being just there to perform join.
> This looks like it will not perform well. Also another posting on the
> forum mentioned a limit of 61 joined tables, which I am quite sure would
> be exceeded here.
>
> Then I tried the table_per_class strategy and this gave me the just
> reported error with the FK name length. But it also ended up with still
> 230 tables in the db (a quick count a model impl classes gives me 168
> classes).
>
> The documentation also briefly talks about the MappedSuperClass strategy
> that could be used.
>
> What are you suggestions and what have been seen to be best suited to
> the kind of model that I am dealing with.
>
> Regards
> Alain
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Powered by
FUDForum. Page generated in 0.07975 seconds