0

I am creating a social media website for gardeners. One of the features is that gardeners can create their own garden journals.

A user can indicate in the garden journal where he or she is growing the plants that are the subject of the garden journal. For instance the location could be the balcony, a cold frame, a field etc. Other gardeners who want to grow something in a similar location and are looking for inspiration on what they can grow there will then be able to search for all the garden journals that are based on the same location. I have made this list so far:

INDOORS,
BALCONY,
PORCH_OR_VERANDA,
PAVILION_OR_GAZEBO,
ROOFTOP_TERRACE,
PATIO_OR_DECK,
PERGOLA_OR_ARBOR,
GARDEN,
FIELD,
COLD_FRAME,
POLYTUNNEL,
GREENHOUSE,
CONSERVATORY; 

Is this list exhaustive enough or did i miss some locations?

6
  • 2
    Could you have a cold_frame on a balcony? A pergola on a deck? A greenhouse in a field? I think you've mixed the concept of a "location" with that of a "structure". – DCookie Mar 15 at 17:53
  • @Dcookie a greenhouse is a structure, but you can't say the same about a field or garden right? – Maurice Mar 15 at 18:18
  • Depends on the amounts of light ,humidity , and temperatures. – blacksmith37 Mar 15 at 20:14
  • 1
    could you just let users name the different spaces? then you don't need to come up with any list at all and you won't get users asking for their specific use case to get added to the list – Tom Pridham Mar 16 at 0:32
  • 1
    @TomPridham - A designer could do this, but then reporting becomes unwieldy if not impossible as user-entered locations pile up. Ideally, the user interface would allow the user to select their location from the list (which is what Maurice is working on) to view plants that worked in those locations. If users enter the locations themselves, then the list expands with each location entered - and if one user enters "Near a wall" and another "Ner a wall" (misspelled), you'll get two entries instead of one. You could easily end up with 100+ locations and a useless application. – Jurp Mar 16 at 15:11
5

At some point in the future I think you will find that your categories are too broadly defined as collections of even more basic categories. One of the fundamentals of database design is to reduce things to their essentials. This leaves room for distinguishing one category from another and also (which addresses your question) creating new compound categories from existing fundamentals. What makes a polytunnel different from a greenhouse, and might there exist a new type of intermediate category that introduces a new element that neither the poly nor the greenhouse possesses?

Perhaps it might be helpful to go through the existing list to define the basic characteristics, and use these to classify the growing spaces even if you do not expose the final user to this layer of granularity.

7
  • great answer @ColinBeckingham, and i agree with you on what you said about database design. But i'm in a bit of a hurry because the grow season really starts off next month. So i'm trying to get something online before march the 20th. Right now the list above are fixed enum values of which the user can pick one. In the future it will be better to make a table where each row represents a category. That way more categories can be added more easily. But right now I have a deadline so i'm going for the quick and easy solution. – Maurice Mar 15 at 18:17
  • 2
    If I were your supervisor I would suggest "take the time now" - a couple of hours of focused work. It's an important point of fundamentals and best sorted now before end users make their selections only to have to undo them later when you finally get to it. – Colin Beckingham Mar 15 at 18:23
  • @ColinBeckham as soon as its online i'll ask everyone to give their opinion on the webapplication. Chances are that there are other things that need to be changed too. I'd rather ask for a review first and then change everything that needs to be changed in one go. – Maurice Mar 15 at 19:46
  • 1
    As a (now retired) DB designer/developer/writer and a bunch of other IT positions, I most definitely agree with Colin - the absolute worst thing you can do is to create a data structure with incomplete/incorrect keys. Trying to implement any changes after release (and I consider the alpha test you're planning a 'release') can quickly become a time-sucking nightmare. A colleague once told me "Designing a DB quickly will eventually take at least 10 times longer than taking your time and designing it right." – Jurp Mar 15 at 23:12
  • 1
    @Maurice Seems to me you'll need multiple data points to aid in reporting. For example, you could drill down to: Zone+OverallSunExposure+TimeOfDaySun+SoilType+NaturalSoilDryness+SoilAcidity+MacroLocation+MicroLocation+Rain+ManualWatering+[other info]... Of course, each field is required entry, which makes edit checking the web page both necessary and a pain in the butt. A simpler Zone+OverallSun+TimeOfDaySun+MacroLocation+SoilType would work, but would be less useful but would be easier to enter and to edit check. Still multiple data points for entry and reporting, though. – Jurp Mar 16 at 15:38
2

I have been wanting to compare garden plants locally too - good luck with this.

People don't have to use the extra options, or even see them, but it is good to have them incorporated in the database at the start.

I wish to have:

hours of sun at time or reporting

whether the sun is morning or afternoon (some plants killed by summer arvo sun)

if growing near a solid wall, and on which side (can indicate partial protection from frost)

if growing in pot, and what size

if grown from seed or cutting

If you show the list of options later, we will add to them.

1
  • awesome suggestions @Polypipe Wrangler, some of your suggestions are already in it!. I'll try to get the first version online later this month and then i'll post the url here. – Maurice Mar 16 at 11:06
2

Raised beds, used bathtub, shoes, used tyres, vertical planters, etc. I suppose the list can be endless, there is always a plant you can grow in any container or space small/big. I agree with others suggestions here, take time to think through at this stage to save the disappointment or time (>10fold) later. May be you should be giving an option such as size of the space and facing, in a windy position or sheltered, weather(tropical/cold) etc, other parameters to consider.

1
  • thx. The categories can indeed be endless. Thats why i'm trying to narrow them down to some broad ones. I hope to get the first version online in a few days. – Maurice Mar 17 at 14:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.