Selecting the Tables tab in the main database window presents a view of the tables in each server database; there should be a top-level entry for each server database (including one for the !Files entry). When the database contains any tables, these will be viewable by expanding the tree. However, if you have just created a new database on the server, the tree will expand to a single item, Create new table. Double click this to bring up the table designer.
The upper half of the table designer contains fields into which can be entered the table column name, the column type, whether it is the primary key column, and a comment. The lower half contains fields which show information about the column selected in the upper half. Of these, the length, precision, null OK. indexed and unique fields are properties of the actual column in the table. The remainder are additional information which Rekall stores about the column (in the __RekallDesign table).
The standard sort of keystrokes can be used to move around the design form. Up and Down-Cursor move between rows; Enter, Tab and Shift-Tab move between fields (and between rows when at the last or first field in a row). The gray coloured bar to the left of the upper half indicates the status of each row (which in this case corresponds to a table column) as below; you can also right click in the bar to gain access to insert and delete operations.
Marker | Meaning |
![]() |
Current row |
![]() |
Data changed |
![]() |
Row marked for deletion |
![]() |
Row inserted |
![]() |
Current row but focus in another block |
The table below shows the three database tables that are used in the Orders database. Client contains details about each client; Products contains information about each product; and Orders list clients' product orders.
Table Name | Column Name | Type | Length | Null OK? |
Client | ClientID | Primary Key | ||
Company | VarChar | 64 | No | |
Salutation | VarChar | 8 | Yes | |
Contact | VarChar | 64 | No | |
Department | VarChar | 64 | Yes | |
Address1 | VarChar | 64 | No | |
Address2 | VarChar | 64 | Yes | |
Address3 | VarChar | 64 | Yes | |
TownOrCity | VarChar | 64 | No | |
PostCode | VarChar | 12 | No | |
Telephone | VarChar | 20 | No | |
DateRegistered | Date | No | ||
Products | ProductID | Primary Key | ||
Description | VarChar | 80 | No | |
UnitCost | Double | No | ||
Stock | Integer | No | ||
DeliveryDate | Date | Yes | ||
Image | Blob | Yes | ||
Notes | Blob | Yes | ||
Orders | OrderID | Primary Key | ||
ClientID | Foreign Key | No | ||
ProductID | Foreign Key | No | ||
Quantity | SmallInt | No | ||
DatePlaced | Date | No | ||
DateDispatched | Date | Yes |
The image below shows the table design screen for the Orders table, just before the table design is saved (by clicking the floppy-disk tool). You can see the use of the Primary Key and Foreign Key pseudo-types. Once the table design has been saved, the table will appear under the Tables tab; expanding the table there shows a summary of the table columns.
If you open an existing table in design view (or if you have just saved a table design) then Rekall examines the columns to see if any match with its notion of a primary key, and if so shows the type as Primary Key. However, this is not true of Foreign Key, so if you create a column with this pseudo-type, it will typically reappear as an integer. Note that, at present, Foreign Key is purely a design convenience, and no foreign key information is actually passed to the server database even if it does support this notion.
You can make changes to the table design and save them. Rekall will attempt to preserve table contents. Clearly, any data stored in a column that is dropped will be lost, otherwise values are converted (if possible) if the column type is changed ( Currently, Rekall has no knowledge of the server database's abilities to directly change a table using the SQL ALTER command. Data is therefore preserved by copying, so be aware that changing the design of a table which contains a large number of rows of data may not be a good idea. ) .
You may also have noticed some text in the field labelled Link at the bottom of the previous image. We will return to this later. Meanwhile, the left-hand most tool on the tool-bar is used to switch from table design view to table data view; when in data view, this is replaced by a small set-square tool, which switches back to design view.