On Jun 18, 2008, at 7:33 PM, Ren, Kevin wrote:
Hi,
My question is coming from "SQL generation" in Entity Modeler.
When I am playing the code with Apple/example/
SophisticatedDatabaseExample.
Both EOModeler and Entity Modeler take the approach that they are
speaking JDBC, not any database-specific SQL. There are, of course,
plugins that can make the behavior of any of the EOAdaptors more
sophisticated. I do not think that Entity Modeler promises to do
everything it could do to create the optimal SQL for any particular
database and schema.
A couple of things. If you know what you want, you can probably add
the proper constraints yourself. EOF's primary job is to give you an
object graph, not to do database design.
Also, if you want to suggest changes to any of the plugins in PWO,
you could. The new SQL implemented there would have to not break
anyone else.
I would also ask if all the complexity allowed in your database needs
to have a place in the model. A model provides an abstraction.
Perhaps the model could be kept simpler for greater flexibility in
the future.
But then again, EOF and Entity Modeler could always do better.
Sometimes the tools just really do the most minimal job and more
could be done.
cheers - ray
Copied from README:
The SophisticatedDatabaseExample demonstrates the use of
inheritance, flattening, and multiple models.
The Person class is abstract. Student, Parent and Employee inherit
from Person using horizontal inheritance.
The Admin,Staff, Teacher classes all inherit from Employee using
single-table inheritance.
The HomeAddress, WorkAddress, and BillingAddress inherit from
Address using vertical inheritance.
The relationship between Student and ScheduledCourse is an example
of a many-to-many "flattened" relationship. The normal indirect
"join" table values are extracted into each side of the
relationship, giving the appearance of a direct many-to-many
relationship between entities(classes). This relationship is
interesting because Student is an entity in the School model but
ScheduledClass is an entity in the Course model.
When I tried to create foreign key constraints using "Generate
SQL", I only got some constraints, not all of them.
All I got from two models:
ALTER TABLE SCHEDULED_CLASS ADD CONSTRAINT
SCHEDULED_CLASS_SCHEDULE_FK FOREIGN KEY (SCHEDULE_ID) REFERENCES
SCHEDULE (SCHEDULE_ID);
ALTER TABLE SCHEDULED_CLASS ADD CONSTRAINT
SCHEDULED_CLASS_COURSE_FK FOREIGN KEY (COURSE_ID) REFERENCES COURSE
(COURSE_ID);
ALTER TABLE SCHEDULED_CLASS ADD CONSTRAINT
SCHEDULED_CLASS_CLASSROOM_FK FOREIGN KEY (CLASSROOM_ID) REFERENCES
CLASSROOM (CLASSROOM_ID);
ALTER TABLE STUDENTPARENT ADD CONSTRAINT STUDENTPARENT_STUDENT_FK
FOREIGN KEY (PARENT_ID) REFERENCES STUDENT (PERSON_ID);
ALTER TABLE STUDENTPARENT ADD CONSTRAINT STUDENTPARENT_PARENT_FK
FOREIGN KEY (PARENT_ID) REFERENCES PARENT (PERSON_ID);
ALTER TABLE STUDENT_SCHEDULED_CLASS ADD CONSTRAINT
STUDENT_SCHEDULED_CLASS_STUDENT_FK FOREIGN KEY (STUDENT_ID)
REFERENCES STUDENT (PERSON_ID);
I think some foreign key constraints are missing, like
SCHEDULED_CLASS and TEACHER(EMPLOYEE), EMPLOYEE and ADDRESS,
STUDENT and STUDENT_SCHEDULED_CLASS …..
Is it bug in Entity Modeler or somewhere couldn't figure out the
horizontal/vertical inheritance in the model?
Thanks
Kevin
"This communication is confidential and may contain privileged and/
or copyright material. If you are not the intended recipient you
must not use, disclose, copy or retain it. If you have received it
in error please immediately notify me by return email, delete the
emails and destroy any hard copies. ANZ National Bank Limited does
not guarantee the integrity of this communication, or that it is
free from errors, viruses or interference."
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/ray%
40ganymede.org
This email sent to [EMAIL PROTECTED]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]