After testing the concept of my new database for keeping track of ringed gulls a few weeks ago, I have been working on 2 tasks:
- Preparing and importing the data from my old database (FileMaker 11 Pro)
- Creating the basic foundation and functionality of the new database (FileMaker 12 Advanced)
Preparing and importing data
Before I could do anything in the new database, I wanted to migrate most of my current data. The problem was though that in the new database the data is stored over many more tables.
In short, the core of the old database consists of only 2 tables: one for keeping track of the bird and its rings, and another for keeping track of the observations of the bird.
The new database however has as its main structure separate tables for the bird, the rings, ring events and observations.
I therefore needed a way to import the data without loosing track of which ring and observations belonged to which bird, and at the same time I had to create the events for each ring.
The solution was to introduce a unique ID for each bird in the old database which I could then migrate over to the new one. The non-existing events were created by writing some scripts which were performed in the new database.
As ever, FileMaker made this process very easy.
Creating the basic functionality
I then set myself the task of creating the basic functionality of what the new database needed to do. This also served as a test to find out if the structure that I came up with was sound and workable.
There were 4 common tasks that I wanted it to be able to do:
- Adding a new bird, together with one or more markers, an event for each marker and an observation.
Scenario: you have observed a bird that you have never seen before, and you have (part) of the information of when and where it was ringed.
- Updating the marker event details for an existing bird.
Scenario: after sending in your observation to the ringer, you receive the details about where and when it was ringed.
- Adding an observation to an existing bird.
Scenario: you observe a bird that you have previously seen and already exists in the database.
- Easily finding a bird.
Scenario: you want to look up the details of a bird but you can’t quite remember how it was entered.
On top of that, I also wanted it to be able to perform the following 5 less common tasks:
- Adding a new marker event to an existing bird.
Scenario: a bird that you have seen before has damaged or lost one of its markers.
- Adding a new marker to an existing bird.
Scenario: a bird that was already ringed is fitted with an additional ring.
- Updating the marker details.
Scenario: Although many of the properties of a marker never change (such as its color and code) some properties do change, for example whether it is still fitted to a particular bird.
- Updating observation details.
Scenario: You want to add additional information such as a photo or correct an error.
- Adding an existing ring to a bird.
Scenario: A bird which exists in the database has been recovered dead and its ring is re-used on another bird.
The following video demonstrates this functionality:
Now that the basic functionality is in place, I can concentrate on the design, the finer details of the basic functionality and add more features and tools.