Content
View differences
Updated by Eric Schubert over 4 years ago
### Issue
In the current form, the different component lists are stored within the `json_viewpoint` of a bcf viewpoint in the database. But this data can grow very large, leading to big JSON objects in database and slowing down reading performance. Also, all those components are only ever fetched on their own, not together with the rest of the JSON data and only one at a time (selection, visibility or coloring) (at least in theory regarding the BCF API specification).
### Motivation
* normalized components data increases reading performance
* even in two aspects: 1) fetching standard viewpoint data gets much slimmer, the blobs loaded from database (inside database) are much smaller
* 2) fetching any components data no longer needs to fetch ALL components data and filter unneeded data from blob
* fetching logic could be more specific and stable (when representing data from database, currently we have basically shit in, shit out, no validation)
### Todo
* amend database structure to store components of bcf viewpoints
* fix fetching logic, which currently uses jsonb selects
In the current form, the different component lists are stored within the `json_viewpoint` of a bcf viewpoint in the database. But this data can grow very large, leading to big JSON objects in database and slowing down reading performance. Also, all those components are only ever fetched on their own, not together with the rest of the JSON data and only one at a time (selection, visibility or coloring) (at least in theory regarding the BCF API specification).
### Motivation
* normalized components data increases reading performance
* even in two aspects: 1) fetching standard viewpoint data gets much slimmer, the blobs loaded from database (inside database) are much smaller
* 2) fetching any components data no longer needs to fetch ALL components data and filter unneeded data from blob
* fetching logic could be more specific and stable (when representing data from database, currently we have basically shit in, shit out, no validation)
### Todo
* amend database structure to store components of bcf viewpoints
* fix fetching logic, which currently uses jsonb selects