Hi,
I had a discussion with a colleque of mine and we did not reach a agreement,
maybe some experts on this mailing list can help us out....
The question is: Should you use database level constraints to enforce the
integrity of the database or is the integrity of the database the
responsibility of the EJB?
My collegues opinion is that it is the responsibility of the EJB to enforce
the integrity of the data in the database. If you would implement this in
constraints in the database then both the EJBs and the database would have
to know about the integrity rules. Which is duplication of knowledge/logic,
which is not a good thing.
At first I agreed with him, but now I have second thoughts:
- What if the database is used by other (non J2EE) applications? The
integrity then must be maintained by the database, or should all
applications be held responsible for the integrity? The latter would mean
distributing the reponsibility over multiple applications, which is not a
good thing? This would advocate to put the responsibility in the database
and define the constraints there.
- By putting the constraints in the database you enforce that their is one
place where the data is consistent. Specific application could add
additional constraints for that application into their logic, as long as it
does not conflict with the data model.
I'm anxious to hear your opinions on this....
Regards,
Gero Vermaas
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".