I don't think much explanation is needed here. Please add relations to the database. You can't expect end users to deal with this themselves with the help of triggers. If you introduce relations, those who want can still leave out the relations and implement it with triggers if they want.
We currently do not plan to implement referential integrity for the ABL. However, we are exploring and planning on doing a lesser level called Referential Association. This would conceptually provide you with the ability to define relationships but would not enforce those relationships within the engine.
This would potentially provide 3rd party tools the ability to access and report against schema relationships.
Sorry but i am easily confused and do need an explanation. I do not know what you mean. Please elaborate.
I think what other Lieven means is that relations are no real part of the database. Sure you can enforce them using write/delete triggers (=code), but there are no built-in concepts like referential integrity, constraints, cascaded deletes etc. These things could be made part of the DDL
Also, since these constraints are in ABL code, they are not honnored when using eg. ODBC...
Are you referring to Referential Integrity? If so, this is on our list for the future, however it is not currently scheduled for any upcoming release. It will be a big project so we need to be able to plan it accordingly.
If you are not referring to Referential Integrity, please clarify your request. Thanks!
Off course I am referring to Referential integrity. Sorry for the confusion, I thought it was crystal clear. But I'm also referring to a system where triggers are part of the database so that using the Sql engine, you would also benefit from them...
A thought - have the ability to add logical relationships to the db as a documentation tool. Right now all relationships have to be inferred from code and/or indexes - if there was some schema tables where relationships can be documented, then other tools can use this information when constructing their queries, etc.
Tim's idea will be a good start.
First step for you would most likely be to change the meta schema to record the definitions of the relations. If you can do that and release it, even though the actual implementation of referential integrity is not done (which I presume is the part that makes it a big project) we can at least start to document the relations properly and our own tooling can start to leverage that.