This is an old revision of the document!
Table of Contents
Qookie Database Design
Design goals
The following is a prioritized list of design goals for the Qookie database.
- Simplicity, the database should not (necessarily) require external services to run in order to work.
- Speed, the database should respond quickly to search queries.
- Ease of backup, the database should be easy to backup.
- Portability, the database should be easily ported to other formats/databases.
The following is a list of things that are not required by the Qookie database.
- Size, the database size will not be an issue, since it will probably never contain more than a couple of thousands entries.
Database middleware
The database is implemented through a middleware layer, in order to abstract the physical database access away from the data itself.
This is also done in order to make porting the data storing to other databases an easy task.
Data definitions
Ingredient
A basic ingredient, such as flour, an egg or a tomato.
An ingredient is made out of the following attributes:
Attribute | Type | Description |
---|---|---|
Name | String | The name or title of the ingredient. |
Description | String | A description of the ingredient. |
Image | Binary | An image showing the ingredient. |
Dish
A single dish is an atomic component of a dish, i.e. cheese sauce, fried potatoes, meat balls.
Course
A course is a combination of several dishes all served together at the same time, i.e. fried potatoes with meat balls and cheese sauce.
Menu
A menu is a combination of dishes to be served together or after each other. A standard menu is aperitif, starter, main course and desert.