Currently, our app is setup to reference a massive list of items (more than 250,000 items) when creating their request in a form that we have created in the appWe have set up multiple tables (about 5) to house the list of items, the tables only have two columns: type, and name.
Is this good practice, or is this one of the causes of slow-down in our app?
Currently, the tables are setup so that it’s read-only except for a specific accounts that run the appsheet api to update the contents of the tables.
All of our tables are saved in a single appsheet database; these include other tables needed in the app.
If i understand correctly, you have a list of 250,000 item that you want user to be to simply view and not make any edits.
You also have admin user that need to make updates to existing items and add new items.
Normally, you make tables completely read-only and ALSO turn on server caching which will make sync times fast after the initial opening of the app.
HOWEVER, if in the SAME app you MUST also allow the admin users make edits, then the table cannot be truly read-only and server caching is not applied to that table.
To help keep things speedy, you can do a few things:
Have TWO apps. One that is the truly read-only version and uses server caching. A second app is used only by the admin user to make updates.
Use Security Filters to download to the device only those rows needed. For example, maybe the app provides a custom Filter view where a user enters some details about the precise data they want to view. Then apply these details in the table Security Filter to reduce the number of rows downloaded.
Both, the number of items is fairly large and probably will only grow. So it might be advisable to have a separate read-only app with custom Filter function anyway. You might want to use the Filter function in the editing app as well!!
HOWEVER, if in the SAME app you MUST also allow the admin users make edits, then the table cannot be truly read-only and server caching is not applied to that table.
Even if the admin only adds/edits in appsheet api, it will still not be counted as read-only?
Have TWO apps. One that is the truly read-only version and uses server caching. A second app is used only by the admin user to make updates.
Is it possible for two apps to use the same database?
So my main app will have read-only access to database2 which includes the 250,000 items.
While another app will have edit access to database2?
ABSOLUTELY!! You have any number of apps against the same datasource. You can even mix datasources in a single app! In fact, you DO NOT want to build one big monolithic app…though that tends to be what ends up happening in lots of cases. There are tradeoffs!