Deferrable Keys (Unique and Foreign)

We would like to use Deferrable (and Deferred) Keys using Aurelius.

If the used Database allows this feature, there would be 2 benefits:

  1. a little better performance, because validation only occurs at the end of a transaction
  2. easier handling for some actions, because result of a transaction is validated, not every single step (for example deleting datasets...)

Note that you can already use them, you just need to create/modify the constraints in the database to be deferred. What is the exact Aurelius feature you want to be added, then?

I noticed, that they could be used.

But we want to setup the initial Database structures and everything around for a new project only using Aurelius.
Aurelius should completely obfuscate the used Database.
Every customer should be able to "choose" his DBMS.

We don't want to implement any DBMS-specific feature at all.

So that's why we need some options to tell Aurelius that the databasemanager should create deferrable and deferred keys.

The problem is that if I'm not wrong, not all databases support deferrable keys.

Another issue is that every tiny DB feature added to Aurelius is not as simple as it seems, because Aurelius has to also retrieve such information from the database, compare, and Data Modeler has to include it too, including the UI.

So it's a matter of weighing the amount of work to support such feature, compared to the benefit.

But thanks for the suggestion, it's a valid one, we will try to implement it eventually. That's the purpose of this new feature request system, users can vote and discuss to drive what's important for the future of Aurelius!