Plants for a future database redesigned

Plants for a future database

Having bought the book and started using the Plants For A Future website, I quickly realised what an invaluable resource the data they have collected is to a permaculture designer in a temperate climate. However I quickly realised that in its current format, it is very difficult to get it to do what I want and fit it in with my systematic way of working. So I bought the database to see if I can redesign it to make it work for me.

To my utter horror I found the database is written in MS Access, and is full of bad database programming practice. For those who are technical, it has very poor level of normalisation, totally inappropriate use of foreign and primary keys, and a bizarre table naming convention (most tables contained spaces). So I set about trying to unravel the database to make it more usable.

A few months later and here we have it. I now have a database converted to an open source relational database (MySQL), working under my native Linux platform. Now I appreciate this may look totally geeky,... er, well okay, so it is totally geeky, sorry!!! But I wont apologise for my geekyness, its what I am good at, and sometimes it comes in very handy!!! So this is how I tailored the database to fit in with my needs and my way of working.

 The database now works with me, and works according to my flow, which means I can research data and extract data with very simple commands, which is fast and efficient. Most of it is done on a command line, so no waiting for pages or images to be downloaded, everything is instant and within seconds.

If you look carefully at the snapshot below, what you will see in the first box, is I have searched for all plants that produce wax. In the box below, I selected one of these plants (Ligustrum obtusifolium) and looked at what other uses this plant has (e.g in this example it is also used as ground cover).

Wanting to then find out more about this plant, I move to the third box, where I list all the data I have about its height, width, soil condition, sun requirements, what else is edible, any other useful parts of the plant, etc.

Satisfied that it is something I will consider for my current design, I simply add the current plant to my saved plant list by trying "s", and search for the next plant. When I have compiled a list of plants I then then type "o" which saves the list to a spreadsheet and opens the spreadsheet for me.

Now most people think I am crazy for having transparent windows, but as you can see from this screenshot, the advantage is I can read what is behind a window, without having to navigate away from my main working screens. So underneath the 4th window, you can see the spreadsheet that was created, containing the plant in question, along with all the interesting facts about the plant. Normally this spreadsheet will be full of plants, as opposed to just the one I have in this example. I typically then reformat this spreadsheet to make up a handover document for my clients, so they know how big the plant will be, when it will flower, if it will loose its leaves, what kind of fruit to expect, how to use it, etc, etc, etc. From the spreadsheet, I can gather all the info I need to know where to plant it, when, how to propagate it, etc.

I have also written a separate program which takes a list of plants, and in one go searches the database to collect all the data directly into a spreadsheet.

There is another program that can search for pictures of each plant and display it in the screen.

For more in depth searches I have also included some more personalised searches. Below you can see I have searched for all plants that can tolerate deep shade. In the list I pick out "Sanguisorba minor" and look at the plant in more detail. Again if I am satisfied I want to consider this plant, all I need to do is save this plant and add it to the list, and then press "o" to look at the output in a spreadsheet. You may also have noticed that the layout of the screen has changed. That's because this is not part of my application, it is oly a front end to my application, and I can open it is whatever format suits me. For those who are familiar with Linux, you will undrstand what I mean by I can open it in an xterm or any otger emulator. It also means if I am on a network, I can pop up the xterm onto someone else's computer and work from there if necessary. I can also use a virtual desktop, so I can work in my native unix environment on a Mac or a windows machine (perish the thought)!!!

And that's not all, the application does a lot more. I can also access the data via a web front end (not geeky enough, and rather cumbersome if you ask me).

And as with any good design, I am constantly tweaking it. Every time I notice I need to access data in a different way, I can simply add more functionality. Currently on version 3.4, with every iteration and idea for future work documented.

Now that's what I call using technology appropriately.


Upcoming Events

No events found

Events overview