Mathesar Data Types definition #959
Replies: 8 comments 10 replies
-
Based on our discussion on matrix, I have listed some of the useful points that came up
@kgodey commented that this is correct and falls in line with our assumption.
I think this might confuse the user. If this happens to be the case, they could be expecting filter options to be based on |
Beta Was this translation helpful? Give feedback.
-
@kgodey This all looks great to me!
The only constructive criticism I have is that term "group" is somewhat overloaded and we're using it here in reference to the fact the several pg types can be "grouped" together into one Mathesar type. Honestly I can't think of a better term though. But just throwing it out there that if someone else can think of a different word, it would be nice to avoid "group" for clarity's sake. Not a big deal though. |
Beta Was this translation helpful? Give feedback.
-
I don't actually understand what we're trying to make understood in non-technical terms. Should users understand that choosing Numbers makes sure they don't input '123d'? Or that they'll be able to sum and average them? I.e., it's not clear to me why a generic user would bother with choosing a type at all, other than maybe any nice formatting it results in. I think the precise user-oriented goals should be clarified for us, then expounded upon in the User-facing docs. In the current docs, it has a sentence about data quality, and another about available filters (or other functionality). But, as far as I understand, the goal isn't to define Mathesar types so that they'll know what filters will be available by choosing one. As for reducing cognitive load, I think that's a good goal, and is certainly served by trying to bin things together. Overall, I do agree that we need to avoid users spending a bunch of time thinking about the differences between
I'm not clear (or maybe convinced) on the goals, so it's hard to answer this. I initially really liked the concept of having a lossless default, but that's not a decision criteria. You can have one type "data", and have
There's a mistake: You can't cast a Overall, I don't want to come off as too negative, since I wholeheartedly agree with the main goal: Avoiding users being overwhelmed by choosing between Side note: I really liked what @dmos62 mentioned about "tags" on Matrix: If a user is more interested in doing things and processing than organizing, tags would be a way easier way to get to what they want than types (and maybe more natural). |
Beta Was this translation helpful? Give feedback.
-
Hair-brained alternate easy-type-omatic concept: On import, we infer a type (losslessly). If they input data that doesn't fit that type, we ask "This is different from other data in this column. Are you sure?". If they answer affirmatively, we update the type to encompass the new data without bothering them with specifics. If they want specifics, they see all the types, as we assume they're an advanced user at that point. This would be simple for the user, and result in the ability to use a column that consists entirely of numbers as a number (as they'd probably want). If they add a column, we initially set it as We already have all the pieces needed to support this UI on the API level. Later, if we want to give the user the ability to start from a desired filter or other function and navigate to a type, we add some kind of "type chooser" that helps with that task. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Yes. I'm slightly cautious of the simplicity goal, or more specifically the fine line between undersimplification and oversimplification. To be clear, I absolutely agree that we want to simplify working with types. It's just that if we oversimplify, we might make something simple for a total beginner, but burdensome slightly higher on the learning curve. Types with time-of-day being in the same Mathesar type as types without time-of-day information is an example of this, I think.
What I said about simplification above applies to the "simple concept" criteria.
The time-related Mathesar type gives me pause. As others pointed out, what the future users will be is a central question. I see two perpendicular axes of users: there will be beginners and highly-technical users, and there will be users that organize data and those that process data:
Of course this is a crude simplification. Might not even be a good one. But, my main point is that some solutions related to types cater to some of these user categories, but compromise on the others. A way to address that might be if we consider Mathesar types as mutable groups. Mutable as in user-customizable. The user could switch between different Mathesar type sets and compile his own. That way no-one is left disadvantaged. The other idea that @mathemancer mentioned in passing above, is using a tag-system. Right now we're using non-intersecting groups of DB types and calling it a Mathesar type. In compliment to that, or as an alternative, we could tag DB types based on their interesting properties. For example, does the DB type have time-of-day information, is it string-like, is it numeric, does it have decimal precision, does it have a decimal. The user could then tell the database in terms of tags what he expects and the database could express the choice of DB types in terms of tags too. This idea might be too far removed from our current UX specs to be practical. And, it's pretty hand-wavy at this point. But, I think it's an interesting concept to keep in mind. In summary, outside what I mentioned above, I'm pretty comfortable with current state of the Mathesar type concept. |
Beta Was this translation helpful? Give feedback.
-
@dmos62 @mathemancer @pavish @seancolsen @silentninja Thanks for all your comments. I'll respond to everyone here rather than replying to individual comments. Here are my takeaways:
Action I've taken based on feedback:
Does anyone have any remaining unaddressed concerns? |
Beta Was this translation helpful? Give feedback.
-
There's been some confusion around the concept of the "Mathesar Data Type" abstraction that we've come up with, so I wrote up a couple of wiki pages to help clarify.
I know we've been talking about data types quite a bit, but please try to read the pages with as much of a fresh eye as possible (imagine the concept is new to you).
Some questions:
Any other feedback on the pages are welcome as well.
Previous discussions and context
Beta Was this translation helpful? Give feedback.
All reactions