-
Notifications
You must be signed in to change notification settings - Fork 315
Description
What
Allow entities backed by views to participate in relationships.
Supported combinations
- view → view
- view → table
- table → view
No new configuration syntax. Existing entities.<name>.relationships settings continue to work.
Unlimited combinations
flowchart LR
Table1
Table2
View1
View2
Table1 --> Table2
Table1 --> View1
View1 --> View2
View1 --> Table2
Note
Stored procedures cannot be related.
Why
Today relationships only work between table entities.
However, DAB already allows relationships to be defined in configuration without requiring database FK constraints. If a relationship can be described using fields in configuration, the engine should be able to generate the join even when the underlying object is a view.
This enables common read models where views shape the data exposed through the API. A view such as SeriesActors can already be exposed as an entity, but it cannot currently participate in relationships.
Example
View → table relationship
Exactly the same syntax as before
"entities": {
"BooksView": {
"source": { "object": "dbo.vw_books_details", "type": "view" },
"relationships": {
"publisher": {
"cardinality": "one",
"target.entity": "Publisher",
"relationship.fields": [ "publisher_id:id" ]
}
}
}
}View → view relationship
Exactly the same syntax as table
"relationships": {
"authors": {
"cardinality": "many",
"target.entity": "AuthorsView",
"relationship.fields": [ "id:book_id" ]
}
}Metadata
Metadata
Assignees
Labels
Type
Projects
Status