Dabble DB

The Dabble Blog

Archives: Features

Case Study: How the Battery Hen Welfare Trust is Using Dabble DB

As a customer for almost two years, the Battery Hen Welfare Trust (BHWT) is a great example of how people are using Dabble DB in their organizations. Based in the United Kingdom, BHWT has saved over 180,000 caged hens from slaughter to re-home them as family pets since the charity began in 2005. This is only 1% of caged hens, but their initiatives are going strong. With celebrity chef Jamie Oliver on board, it's no surprise that they have found success raising awareness for free-range egg production, as well as educating consumers to be more discerning.

Initially, BHWT realized that their rapid growth necessitated moving away from Excel for re-homing records. The increasing number of users resulted in a lack of consistency in their spreadsheets, and coordinators in particular found Excel too technically-demanding for tracking a lot of data, especially without extensive training. BHWT also wanted the ability to view their data in different ways -- something that Excel does not handle easily or quickly. The spreadsheet system also offered no obvious way for the head office to oversee the booking and re-homing process. They decided to look into an online solution and found Dabble DB. The admin user, Adèle Hall said that “since moving our Excel based files to Dabble a year ago, we now have a system that provides all we need to manage and analyze our hen distribution data."

Read the rest of this entry…

Dabble DB vs Traditional Relational Databases

“Can I create a lookup field in a table to be viewed in another table?”

“I am a seasoned Access user and thought this would be a breeze --but I'm just not getting it.  Your advertisements say that this is a relational database, but I don't see how I build queries, make join relationships, etc…Please help!”

From time-to-time we receive emails from customers that would like to build a relational database in Dabble DB. In a typical database program, a relational database organizes your data into tables that are joined to each other by the specific data in each table.

While Dabble is “relational”, our system differs from that of other traditional databases that some of our customers have become familiar with.

If we look at Access, their relational database is comprised of multiple tables, each relating to a specific topic. Instead of tables, Dabble is made up of different Categories that share similar information.  In our example, Physician is our common field that we will be using to create a relationship and build views.

One Category lists patients in a hospital.

                                                 Category A

And, the other Category contains a list of doctors.

                                                 Category B


Another important difference is that Dabble doesn't make you worry about keys or identifiers like Access. Instead, links are made between entries using a drop-down menu, and you simply select the entry you want to link to.

The List of Entries field and Link to Entry field are the two ways you can link your data and create relationships. List of Entries lets you create one-to-many relations and Link to Entry lets you create one-to-one relationships. For both of these functions the value of the field becomes a reference other entries in your application, just as it would in Access using keys.

To return to the example: we have Physician in Category A and Category B, we can create a relationship between the two categories by using Link to Entry. 


Click the column, go to Configure, and select “Link to Entry.”


Tell the system which category you want to link to. Once you save, Dabble figures out which physicians in category A correspond to which entries in Category B.

After you have created links, you can pull data from the linked Categories and display it on a particular view. First, we’ll create a view that shows us the Physician’s information and what patients are linked to them. To do this, you must add a new column and select the Category that you have linked.


We now have a full view of all the physicians’ information and the patients that are linked to them. From here, we can create different views to suit our needs.


The link is active between both Category A and Category B. So, as you can see in Category A, if we click on the Physician’s name,


We are brought to the information we have entered in for them in Category B. 


Now, no matter which Category we are in, we can see both information on the Patient and the Physician – all thanks to Link to Entry.

Derived Fields is a very useful tool that will let us pull data from the Categories we have linked. 

So, if I want to compile a list that has all of our Patient information and some of our Physician information, I can go to Category A 


Click on Physician and select “Add derived field,” and add “Telephone Number.” Then repeat and add “On Call?” and then again for “Hospital”. (If we wanted the Derived Field to replace the original Physician column, we would simply hold down the shift key and it would replace the column for us.)


Now that we have pulled all the information we would like to see from our Derived Fields, we have a handy view that shows the combined information from differing Categories.


From there, we can do things like group Physicians, set filters on various fields and create lists and views that are appropriate to our needs.

That’s a very brief and basic overview of how Link to Entry, List of Entries and Derived Fields work, but it gives you an idea of how Dabble DB can be used as a relational database, like many of the other programs you may be used to. 

For a more intricate example, head over to “OUsful.info” and check out how Tony Hirst used Link to Entry. It’s a great example of how other people are using Dabble DB.

Have you been blogging about how you are using Dabble? If you would like to share the love, drop us a line at info@dabbledb.com

See these pages in the help index:

iPhone and Android support on Pages

We're happy to announce a new feature on Dabble DB. Dabble Pages are now optimized for mobile use on the Apple iPhone and iPod Touch, as well as on all Android devices.

There's no special configuration nor any settings to change. Existing pages will already be optimized and will now display in a different format on mobile devices. The main differences are that certain elements are hidden by default, to be revealed by a click tap, and we've adjusted font sizes to be more legible on the small, high-density screens that these mobile devices feature.

Here's a regular Page as seen in your desktop browser:


The same page as seen on the iPhone is at right. Note how certain elements — navigation to other Pages, for example, and view filters — are now hidden behind links to save space. Tapping Menu opens the navigation menu as a pop-up, and tapping Toggle Filters will reveal the filters (no page reload required).

If your Page includes both a view and a form, handy links will appear to scroll you from the top of one to the other. In addition to bigger fonts, form elements are also enlarged for the small screen and because of this, even if you have specified multiple columns for your form, they will be shown in a single column on the mobile device. This should make it much easier to enter and edit data on the go.

Mobile support has been requested by a number of our customers. We hope you enjoy it!

Checking the right boxes

In any database system, or even an intelligent spreadsheet, it helps to give your computer hints about what kind of data you're working with. In Dabble DB, this takes the form of field types and selecting one informs Dabble whether you're working with, for example, numbers, money or geographical locations. We already support lots of different data types, but starting this week, we've added some new field types. And we've made some of the existing types smarter.

Better choices for choices

Re-order your choices First off, our choice fields just got a lot smarter. You can now re-order your existing choices any way you like, at any time using a spiffy new drag-and-drop menu. After you add a new choice you can move it to the top of the list or somewhere in the middle. You can also now edit your choices with the changes applying to existing entries. So now when your boss says that "incomplete" sounds too negative -- can you please change that to "in progress"? -- it's not a problem.

Radio buttons The other new feature for choice fields is to present them with radio buttons instead of drop-down menus. With radio buttons, choices are shown beside a circle, each on a separate line, with the selected choice's circle filled in.

Radio buttons Radio buttons make it easy to show a few choices clearly. Sometimes though, you only really need two choices -- a basic "yes" or "no". Many of our customers have requested the option to use checkboxes in these situations, and we're happy to provide them as a new field type on their own.

Checkboxes combine very nicely with our Edit Column feature (for spreadsheet-style editing), making it easy to change many entries at once without cumbersome drop-down menus. On longer forms, checkboxes are more usable and efficient for your users. And lastly, you can create attractive table reports by using icons to show checkbox data instead of words.

Clean up your links

Web link labels For a long time, you've been able to put web links and email addresses into text fields using a special formatting option. Well we've now broken them off into their own separate types. Better still, we've added the option to label links and addresses. You can use a default label for all entries (the proverbial "Click here" for example), or use a custom label and write a meaningful phrase to identify each particular link. No more long, indecipherable map URLs.

One-click dialing

One-click dialing
To complete this contact information circle, we've finally added a phone number type. We still have some plans up our sleeves to make this a rich feature, but as a starting point, this field type will give you one-click dialing for your contacts if you're a Skype user. Support for mobile phone dialing is also forthcoming.

Smarter configuration

Finally, all of this comes part and parcel with an overhaul of field configuration itself. Because there are now 15 different field types, we decided it was time to split the configuration in two parts. Selecting a field type is now one screen, and once you've made your choice, the window rolls up to reveal options for that particular type. (Of course you can still change the field later by going back to the list of types.)

You can find a video showing the new field configuration on our help pages.

Building a better widget

Today's blog post isn't about a new feature to Dabble DB, but to me, the user interface designer, it feels just as significant.

Interface design on the web can be both simple and complex. The simple path is often the wisest. Don't deviate from what everyone else does and people will figure out your interface. That's why you see blue links everywhere on the web: not because there's anything special about blue, but because that's what everyone is used to.

Sometimes though, the norm doesn't quite cut it. Or worse, there is no norm to do the cutting in the first place. One example is the combo box widget. A "combo box" is what we design nerds call it when a text box has a drop-down menu attached and they interact. (And a "widget" is interface-design-speak for a thing that you interact with, like a text box or a button.) In theory, when you start typing in the text box, a drop-down menu appears below, and shows choices related to what you've typed. Ideally, it changes quickly as you type.

A combo box in Firefox

Combo boxes help narrow down a wide array of options. One example is Firefox's built-in search box, where once you type something, it shows you other alternatives. You don't need to type the whole phrase to find a result. Very useful. We use combo boxes in Dabble DB too, when there are too many entries in a list to show them all comfortably in a single drop-down menu. This happens with Link to Entry and List of Entries fields, if you're choosing from say, 200 existing entries. Rather than show the entire list, you type in part of a name and then it shows you potential matches.

Desktop applications usually have good combo boxes because programmers have standardized widgets readily available to drop in. On the web, however, combo boxes have never been standardized, and they aren't terribly easy to create. The result is that many people have spent a lot of time creating their own, and most are half-baked. Variations are fine for Glenn Gould, but if people are going to take web applications seriously, we don't want 32 different styles of combo boxes.

We've used our particular combo box approach for a long time, but the implementation was neither elegant nor fast. It required you to type and then click on a menu, which is a pretty slow interaction. That it lasted as long as it did is because most Dabble DB users never saw the combo box and so they didn't have an opportunity to complain. (We hate complaints.)

We did receive a few complaints though -- justifiably -- and so we decided it was time to improve this widget. I'm happy to say that a new version has recently been deployed to everyone and, if you were used to the old one, this should inspire thoughts like, "What took them so long?" If you never noticed the old one, then hopefully this will inspire no thoughts at all because it just works.

For those that care about such things (and if you don't then you probably stopped reading this post ages ago), here are some little details that we worried about in making this widget more pleasant:

  • It gives you some visual feedback to indicate that search results are loading.

  • Once search results appear, you can simply press Enter to choose the first match.

  • You can use cursor keys (down and up) to select another match and then press Enter so that you don't need to move your hand to the mouse.

  • If you like moving your hand to the mouse, you can still do that too and click the match you want.

  • Overall, searches happen faster because the system doesn't waste time doing a new search after each letter you type. Instead it searches every tenth of a second only if something has changed and it cancels any previous results that are still loading.

This video requires the Flash Player version 8 or higher, and also requires JavaScript to be enabled on your browser.

We hope you enjoy.


*or* = More

We're continuing to expand the possibilities with Dabble DB's filters to make it easier for users to search their data and find what they need. Starting from today, you can use the "wildcard" asterisk at the end and/or beginning of a search term to find partial matches in your text. If you can't remember if someone's first name is "Elizabeth" or "Lizzy", for example, searching for *liz* will now match both.

This feature also comes in really handy when searching email addresses and web site URLs. For example, filtering for *@dabbledb.com would match any email address ending in "@dabbledb.com". Filtering for *.dabbledb.com* would match "www.dabbledb.com", "blog.dabbledb.com", "http://dabbledb.com/", "dabbledb.com/explore", and myriad other possibilities.

Happy searching!


This or that.

There is a new addition to our filters feature set.

  • Enrollment Date: June 2005; June 2007
    • The result will be entries from June 2005 OR June 2007
  • State: NY; CA
    • The result will be entries from New York OR California
  • Last Name: a*; b*
    • The result will be entries beginning with the letter a OR b

We know a few of you have been waiting patiently for this one and we hope you enjoy it.

A new Dabble DB user shows off.

Here is an example from a customer who recently found Dabble DB.  He sent us an email after creating his first page: "Thanks for creating Dabble DB, it's a great product!  I am too embarrassed to tell you how long I spent trying to put together a form like this from scratch."  We've been lucky enough to see it progress to this stage - adding the Google Maps were a great final touch.

Aloha Top Ten is a Hawaiian vacation website.  With this online form they will gather information into their Dabble DB database and use it to provide vacations quotes for interested customers. 


The customer has been holding off on having this form go public, it really needed a calendar date picker for his date fields.  Next on my to do list: email Christian and let him know that has been added - the advent of pages convinced us there was a need.

Calendar picker

Pages and Views

When we announced Pages at the end of August, Andrew hinted that it was only the start of our support for what we call "core" and "satellite" users. His post gave a good overview of why Pages exist and how our customers led us to them. With that in mind, I'm happy to announce Embedded Views: the next, but not last, step in our vision for Pages.

Dabble DB has always supported sharing your views with the world, so that anyone can see the reports you've built. With Pages, you could also collect data from the world, with custom built forms shared with satellite users or anyone else. What we're announcing today is a powerful combination of these two features. Embedding a view into a page form allows anyone accessing that page to access, visualize, and optionally edit, via the form, the restricted set of records visible in that view. We think Pages is now a robust enough platform that many users can do comprehensive work with access only to Pages. In other words, Dabble DB is taking a significant step towards being not just a database tool, but an application development tool.

Table view with form

For example, say you're a sales associate:

  • You only want to see your leads, and you don't want any other sales associate to see yours. None of them want you to see theirs, either.
  • You want to login to a page and see every view you have permission to see.
  • You need to be able to view charts, maps, and tables of your leads.

For the first time in Dabble, you can build this kind of system and host it entirely at Dabble, with no external server or coding necessary.

Calendar view with form

As another example, say you work in an office and you want to wrangle your coworkers' schedules:

  • They want to be able to enter their vacations by paging through a calendar to see when other people will be there.
  • You want people in your office do be able to bookmark a personalized calendar every morning, to see and edit all their appointments for the day.

On a personal note, this is the Dabble feature I've been most excited for, and I'm thrilled to see what our users will build. Meanwhile, we'll be continuing to expand Pages further, and we'd love to know what you think.


Filter finesse.

Filtering your set of data, large or small, is a way to hide the noise when you require the ability to zoom in and out a particular segment.  Since we have a number of clever ways of doing this, here is a quick summary of the beauty in Dabble DB’s data filtering.

(Note the automatic recognition as you type into the search box. Once you enter your filter, click the filter button that appears below the text entry box).


The basic: “Smith”, “Last Name: Smith”
The first will search for the word in any field; the latter will search for the entry in the specified field name.

The wildcard: “Last Name: S*”
The partial-match filter will bring up all entries with a Last Name beginning with “S”.

The exclusion: “Description: any” or “Description: not any”
One will ignore blank entries and the other will find blank entries.

The dynamic: “User: me” and “Date: this month”
Note, “me” will always be the current user signed in and “this month” will always be the current month.

The valuable: “Sales >= 100” and “Sales: <= 100”
Value filters can be used for numeric fields. Using both filters above the result will be all Sales data inclusively between $100 and $1000.

The notable:

  • : — used for specifying field names
  • <, <=, >, >=, after, before — used with numbers and dates
  • today, yesterday, tomorrow — used with dates
  • now — used with dates to mean "today at the current time"
  • from now, ago — used with dates to mean "in the future" or "in the past"
  • !, no, none, not — specifies that matches should be excluded
  • any, anything — matches any value
  • all — match if all entries are included in a list of entries field
  • * — specifies a wild card for text fields

My favourite use at the moment:


I use a saved view in one of my applications to calculate Canadian taxes on just the Canadian accounts each month.  Dabble DB gives me the answer immediately – the calculations and filters are already set.  I would like to know how you have finessed your application with the use of filters - post them in a comment.

Check out our help page for more detailed information.