October 13, 2021
2 minutes

How I work with Clients to Design the Database

Bubble is a Database based application. After your app is built, whether creating and extending your application is easy (minutes) or hard (hours and days) will to a large part come down to the database.

How long it takes you to create your database design will depends on how well you understand your market and industry and the scope of what you are trying to achieve.

If you are still at the stage of thinking the app could do this, could do that, X would be a nice feature, then it will take longer as these kinds of questions need an answer.

I use this 5 step approach to get to the point of an implemented database schema in Bubble.

Step 1 - we talk about your app and as you are explaining it to me I will write out bullet points like this (for example) You can start doing this yourself to speed up the process.

  • Customers search for Practitioners online
  • Practitioners have wait times, specialisations, locations
    (and probably 10-20 more points like this)

I am listening for Nouns and Verbs, it's generally quite obvious when you think in terms of Things (nouns) doing (verb) something (noun). Don't get hung up on nouns and verbs. We are looking for simple statements that describe how the things in your application work together.

Step 2 - We create a simple diagram like this. The boxes are Things (nouns) and the lines are relationships (verbs )

You could start doing this yourself in Google Docs.

Step 3 - We test that design by talking through how we expect the App would retrieve and capture the data (knowing the limitations of how Bubble works and knowing the limitations of how Privacy Rules can be implemented)

Spoiler Alert - about Bubble's limitations.

  • Privacy Rules can only access The Current User and the Current Thing. It can not access child attributes of the Thing or User. eg This does not work User.company.name or Thing.property.attribute. What this means that attributes that you want to make part of Privacy Rules must be first order properties
  • Plugins generally don't understand Things - only simple types like String, Number, Date. If you need a plugin to for example sort a list, it will almost certainly need to be a simple type.
  • There are restrictions on how you can query Bubble Data, especially around list comparison and joins. You need to design with Bubble's query capability in mind.

Step 4 - We implement that design in Bubble - being mindful of Bubble's limitations.

Step 5 (optional and maybe you want to do this later is create the Privacy Rules) Create some basic (not necessarily complete) privacy rules as a examples for you to understand how privacy rules will work.

Depending on your Bubble skill level Privacy Rules might be too complicated at this stage. But you need to at least grasp the concepts of Privacy Rules as you build your prototype.

Now create the Database together in Bubble so you can see how it is put together. My aim is to give you sufficient understanding so that you could extend and evolve the design ongoing.

If you want a free initial 10-minute conversation, no obligation - to figure out if we can work together and so I can make a better assessment of the time to create the database - get in touch.