Deliverable task: Gardening company

 

Let's consider a simplified database for a gardening company. The company has many gardeners that take care of other people's gardens. Each garden has been divided into sections. A gardener in charge has been assigned for each section. Other gardeners may assist him in taking care of his section. Each responsible gardener prepares a report of the conditions in his sections. The report describes the section's type of soil, its dampness, light conditions, etc. Gardeners report on the new plantings they have made. They may plant seedlings or sow seeds. In addition to the way of planting and its date they register whether the planting was succesfull or not. The management wants to know what kind of plantings each gardener has made. This information is used, for example, in selecting the gardeners to be  rewarded in the yearly Garden Festivals. The database contains basic facts about plants like the gategory of plant (tree, bush, flower, vegetable,..), growing conditions, time of blooming, color of flowers, time of harvest, etc.

Solution:

Gardener( GardenerID, Name)

Garden( GardenID, OwnerName, Location)

Section ( GardenID-> Garden, SectionNumber, Soil, Dampness, Lighting,
   PositionInGarden, GardenerInCharge-> Gardener)

Reward( Year, Place, GardenerRewarded-> Gardener)

PlantType( TypeId, FinnishName, LatinName, Gategory, GrowingConditions,
   FlowerColor, BloomingTime, Comments)

Planting ( DateOfPlanting, PositionWithinSection, WayOfPlanting,
   Succesfulness, DateControlled, WhoPlanted-> Gardener, 
   WhoControlled-> Gardener, PlantType->PlantType,
   (GardenID, SectionNumber)->Section)

Plant type may be identified also by FinnishName and LatinName. Sections are assumed to be numbered within locally gardens.

Graphical: