Re: Is it Possible to Enforce This Relationship at the DB Level?



On Oct 15, 2:00 pm, "David Portas"
<REMOVE_BEFORE_REPLYING_dpor...@xxxxxxx> wrote:
"dutone" <dut...@xxxxxxxxxxx> wrote in message

news:1192479211.800346.53530@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx



DB layout is as follows:

--------------------------------
| Client |
--------------------------------
1
|
|
0..*
-------------------------------
| Service |
-------------------------------
1
|
|
1
---------------------------------
---------------------------
| Spread*** Config | 1 ------ 1..* | Cell Config |
--------------------------------
---------------------------
1 1
| |
| |
1 |
-------------------------------- |
| Spec | |
-------------------------------- |
1 |
| |
| |
1..* |
-------------------------------- |
| Field |
1----------------------------|
--------------------------------

Every client has a spread*** that must implement a version of Spec.
For this version, the cell config must corresponding to cells in the
spread*** containing fields for the given Spec.

As long a Cell Config references a Fileld, th DB will be happy, but
the problem I have is making sure that the Fields referenced by Cell
Config are indeed children of the Spec referenced by Spread***
Config.

Is it possible to enforce this at a DB level? Maybe my model is
flawed?

Thanks

In principle it is possible, assuming your DBMS supports something like
SQL's CREATE ASSERTION statement for example.

I'd like to enforce this based on the data model and its
relationships.
Although to me, it doesn't seem possible without an additional layer
of logic.
The need for a check assertion in a RDMS tells me that cerain
cituations must be enforced at a higher level. This is one of them I
guess.

Thanks


.