With Direct Associations Mendix has taken a big step in simplifying the data model and improving performance. One gap that still hurts in real apps: associations that need their own user data.
For example when you create a Project tracking app to keep an overview of which employee works on which projects, you would have the following entities:
Project
Employee
Considering an Employee can work 40% on Project A and 60% on Project B
We need AllocationPercentage on the relationship
Today this always means:
Create a join entity (e.g. ProjectEmployee)
Add Project, Employee, AllocationPercentage
Add 2 associations (Project to ProjectEmployee and Employee to ProjectEmployee)
Build custom pages and microflows to maintain this from both sides
Lose the simplicity and widget support we have with “normal” associations (e.g. Combobox)
Proposal
Extend the association model with a third option (next to usual Association and Direct Association):
Association table with user data
The “Association table with user data” would:
Be defined in the association editor between two entities, like a regular association would
Let the modeller add attributes on the association itself (AllocationPercentage, ValidFrom, Role, etc.)
Be physically backed by a join table/entity that Mendix creates and manages (storage, indexes, migration)
Be understood by association-aware widgets (Combobox, reference selectors, datagrids), so you can:
Select related objects as with a normal association
Edit the extra association attributes inline (e.g. AllocationPercentage)
So from a modeller’s point of view it behaves like “an association with extra fields”, without having to manually design and wire up a separate entity and custom maintenance screens.
Benefits
Keeps the solution low-code and close to how business thinks: “Project–Employee with an allocation”, not “extra technical entity”.
Reuses existing association widgets and patterns instead of custom maintenance UIs.
Reduces boilerplate for very common patterns (Project–Employee, Student–Course with Grade, User–Role with ValidFrom/ValidUntil, etc.).
In short: making “Association table with user data” a first-class association option next to Direct association and Association table would close a real gap in the platform, especially for many-to-many relations that need just a bit more information than a simple link.
I like the idea so I'm going to upvote :) but I can see some push back of it not being the "proper" way to handle it.
I agree as a low code platform Mendix should try simplify this modelling, but traditional modelling would have that extra joining table in between and go down that route.
Now with Views you could try make your own custom queries to try simplify it where needed.