On 08/24/2012 07:01 PM, Franklin, Matthew B. wrote:
I have been working on splitting the models in the branch according to the
strategy on the wiki and wanted to highlight an undiscussed consequence.
In the case I am currently working, eliminating the tight coupling between
objects & person/user, if we switch to using getUser/PersonId() on things
like PageUser, Widgets, etc we will end up with a database that does not
have referential integrity to the person table.  This same pattern will
propagate throughout all "verticals".  If we explicitly define a
constraint in the JPA layer, it will break the ability to use different
persistence strategies for verticals and at the database layer, we are
defining

Everyone OK with the consequences and if not, is there an alternative that
you can identify?

+1

Maintaining referential integrity across multiple verticals (e.g. possibly different type of backends) will involve multiple systems, you cannot rely on one single system to maintain it.

Providing sanity checks, cleanup/vacuum operations etc. to fix/repair possible inconsistencies, periodically or on demand, can be possible but depends on which systems are in use and only can be done 'on top', not 'from within'.

Ate


-Matt


Reply via email to