User Tools

Site Tools


qookie:database

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
qookie:database [2008/11/09 08:54] – created devaqookie:database [2009/01/04 19:09] (current) deva
Line 1: Line 1:
-=====Qookie Database Design===== +======Qookie Database Design====== 
-====Design goals==== +=====Design goals===== 
-the following is a prioritized list of design goals for the Qookie database. +The following is a prioritized list of design goals for the Qookie database. 
-  - **Simplicity**, the database should not (necessarily) requires external services to run in order to work. +  - **Simplicity**, the database should not (necessarily) require external services to run in order to work. 
-  - **Speed**, the database should respond quickly to searches.+  - **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.   - **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=====
 +====Component====
 +A component is the super class of all data components in Qookie. It contain all common attributes:\\
 +^ Attribute       ^ Type    ^ Description ^
 +| ''uid''         | Integer | A unique number defining this component. |
 +| ''name''        | String  | The name or title of the component. |
 +| ''description'' | String  | A short description of the component. |
 +| ''image''       | Binary  | An image of the component. |
 +
 +===Preparation sequence===
 +A named sequence of text blobs or images with a text blob, containing the atomic steps in a preparation procedure.
 +
 +
 +
 +====Ingredient====
 +A basic ingredient, such as flour, an egg or a tomato.\\
 +An ingredient is made out of the following attributes:
 +^ Attribute       ^ Type    ^ Description                                                 ^
 +| ''unit''        | Unit    | The unit in which the ingredient is measured                |
 +| ''season''      | Season  | The season in which this ingredient can be acquired.        |
 +| ''quantity''    | Integer | The usual quantity in which the ingredient can be acquired. |
 +| ''density''     | Integer | Units/pr gram.                                              |
 +| ''category''    | String  | To what category does this ingredient belong.               |
 +
 +
 +====Recipe====
 +A recipe is an atomic component of a dish, i.e. cheese sauce, fried potatoes, meat balls.
 +^ Attribute       ^ Type    ^ Description ^
 +| ''ingredients'' | List<Integer> | A list of ingredient uids, used in the dish. |
 +
 +====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.
 +^ Attribute       ^ Type    ^ Description ^
 +| ''dishes''      | List<Integer> | A list of dish uids, used in the course. |
 +
 +====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.
 +^ Attribute       ^ Type    ^ Description ^
 +| ''courses''     | List<Integer> | A list of course uids, used in the menu. |
qookie/database.1226217288.txt.gz · Last modified: 2008/11/09 08:54 by deva