Mathesar: DB Client, or more integrated? #68
Replies: 3 comments 3 replies
-
In my opinion, I think it should be more integrated. The primary use case for Mathesar is to help users who are not technical, and the chances of them using a pre-existing db is low. Also, not having multiple users access one Mathesar client doesn't seem optimal for most of our use cases. The ideal scenario would be that Mathesar behaves similar to monitoring tools (eg., Grafana), one instance connecting to one or more DBs, and can have multiple users, provides a single pane of access to their data. |
Beta Was this translation helpful? Give feedback.
-
Bouncing off of what @pavish said: I don't think it's completely unreasonable to have both multiple clients hitting the DB, and multiple users per client, but we'd need to make sure to have a very clear line between what the webapp "owns", and what the DB does. This will make consistency challenging (I think), since we'd want to maintain enough state in the webapp for users to collaborate without needing to call the DB, but other clients might modify the DB in the meantime. |
Beta Was this translation helpful? Give feedback.
-
This seems like a false dichotomy to me. Mathesar should function as a DB client, but it shouldn't just be a DB client. It seems like you're framing the issue as DB client vs. integrated to answer a few questions, which I'll address individually. Should we assume other clients are going to be modifying the tables that Mathesar is also modifying? Should Mathesar edit tables to add Should the web application duplicate data for efficiency?
We need a unique ID to represent each database object in the REST API, and this is owned by the web application. This involves some duplication and resyncing of data (table and schema names), but it's not for efficiency or caching, it's because the database shouldn't need to know anything about the API or its concerns. There's also some discussion about non-technical vs. technical users. Our goal is to be usable by both technical and non-technical users. When we release our MVP, the person setting up an installation of Mathesar will need to be technical, but the users using Mathesar once it is set up will not need to be technical, and could be "my aunt Mae". |
Beta Was this translation helpful? Give feedback.
-
I think we should try to pin down whether Mathesar is a DB client, or more integrated into the underlying user DB than that.
As a DB client:
mathesar_id
primary keys to tables (A DB client wouldn't need to do that to function; it would just use the tables as they are).A more integrated Mathesar:
I'm inclined towards the thinner Mathesar, since we've already identified the use case of connecting to previously-existing DBs. It seems that this would imply an assumption that Mathesar is "just another client". I fear that trying to do both is trying to have Mathesar be Jack of too many trades. Alternatively, for a more integrated Mathesar, we could provide an import functionality that would simply give the user the ability to actually import data from other DBs into Mathesar; since we intend to do this anyway via
pg_dump
and similar, maybe it's not necessary to have Mathesar work with a DB that's already up, running, and full of data.Beta Was this translation helpful? Give feedback.
All reactions