What Is Fuzzy Data
Explaining what Mashoom's Fuzzy Data system is, and where it's used across our modules.
Contents
Storing and managing data is at the core of all of Mashoom's modules. Most of Mashoom's modules at their core have a database of "Items", with data and functionality attached to those Items. For instance every Contact in our contact module is an Item, or every Form, or every Physical Thing, and so forth.
However, a traditional database has a few flaws when it comes to storing information:
- They can't easily have custom fields added by the user, so they aren't flexible
- They don't naturally allow for versioning / logging of values changing
- All the same custom fields have to apply to the whole population
- Data validation or meta data around each field can't be configured
- Not naturally suited use case like file storage, calculated fields and lookups
This is where Mashoom's proprietary Fuzzy Data (often referred to as "FD") system comes into play. A combination of database tables and a large software layer means that these limitations can be overcome, providing a flexible data system that can be set up for any use case.
FD also provides advanced search and reporting functionality, including the ability to link between Items from different modules. This means that all our FD modules can be searched for with "A or B" type queries, and data exports can be generated and downloaded simply.
FD also allows us to have a consistent data import methodology. The combination of these two mean that organisations can do mass data changes using all the power of spreadsheets they're likely used to.
FD is being constantly developed, so as we add new features and support, all our modules will see the same upgrades.
Almost every module is built on top of the same data system, so the same powerful tools can be used across every module.
This power enables use cases that open up unique possibilities. For instance creating a calculated field that takes the estimation data for quotes and transforms them (maybe with user custom fields) into a generalised likelihood score, of the user's design.
An "Item" and a "Type Group"
The term Item in Mashoom is used as an umbrella term to describe a Contact, Physical Thing, Quote and so forth. All Items have FD fields, belong to a module, can be reported on, along with all the other general FD functionality available.
A "Type Group" is the collection of Types that often belong to each module. So "Contacts" is a type group, and surprise surprise, belong to the Contact module.
The Spreadsheet Analogy
It can be easier to view Fuzzy Data in terms of how that data would look if you were to set it up on a spreadsheet.
As a first step, you can export all the Items from a module into spreadsheet format, with all the fields. You will get all the fields setup fields in the module along the top, and each Item would be on a row. However, you may have lots of blank spaces where fields don't apply to each Item, and you may have an awful lot of fields!
So, another way of looking at your data is that each Item Type is a spreadsheet with a fixed template. When you're changing a types setup you're essentially changing that template across all the spreadsheets that existing in your database. This is very close to how some business process actually is in reality; many copies of the same template, but often with lax controls and of course, no ability to search through this data.
The analogy is also useful when the fact that Fuzzy Data support calculations, just like can be setup in Excel.