This project is read-only.

Relationship Constraints Missing

May 3, 2009 at 2:29 PM

I created association between two lists using SLAM. List 1 - Country ( Column - CountryCode ), List 2 - City ( Columns - CityCode, CountryCode ).
List 2 has data with countries from List 1.

There is no check, when on deleting data of List 1, even if there is association with List 2.
Also, allows deletion of List1, even if referential data present in List 2.

Please clarify.

Rajendra Shekhawat
May 3, 2009 at 2:52 PM

Hi Rajendra,

You are correct that SLAM, in its current form, does not enforce referential integrity out of the box. 

Because the SLAM event handlers are asynchronous, the UI to handle any messaging to the user would have to be added to an additional synchronous event handler or, typically better, by modifying the UI (removing delete, for example, or creating a custom field type.)  If you want SLAM to enforce referential integrity without the need to message the user (say propagating a delete to dependent lists), you can very easily build a custom type profile to handle that.  See the hierarchy example for how to build a type profile (that example is a more complicated example but it should give you the idea.)


On our to-do list is creating better documentation for creating type profiles since they are such a powerful feature (even beyond enforcing referential integrity).  We might build in automatic referential integrity but, given that we have tools to handle the need, it’s currently not a very high priority.