This section provides some sample schemas to give you an idea for the style and types of schemas that you can create.
You can enter your database description in the Schema file using any style you choose. Qddb only requires the following:
Table 11.5: Keywords that must not be used for attribute names
All of the schemas shown in figure 11.7 are equivalent.
a ( b c ) * d a ( a
b (
c b c
) * ) * d
d
Figure 11.7: Equivalent schemas
There is no limit to the number of nested structured attributes. For example, the schema shown in figure 11.8
a ( b ( c ( d ( e ( f ( g ( h ( i ( j ( k ) ) ) ) ) ) ) ) ) )
Figure 11.8: A deeply nested schema example
will work just fine -- although, if you have this much nesting in your database, you may want to rethink your design.
Figure 11.9 shows a schema using all the options.
It represents a family that might have
many members, addresses and phone numbers.
The attributes n
, a
, and p
are expandable so you can have multiple
names, addresses and phone numbers grouped together in one record.
\progfont
# Database of families I know
HashSize = 2000
CacheSize = 100
Use Cached Hashing
Use reduced attribute identifiers
DateFormat = "%d %B %Y" # "27 February 1956"
n verbosename "Name" (
t verbosename "Dr./Mr./Mrs./Ms./Miss"
f verbosename "First"
m verbosename "Middle" exclude
l verbosename "Last"
)*
a verbosename "Address" (
street city state # three attributes on one line
zip verbosename "zip code" type integer
)*
e verbosename "E-mail" separators "@!%"
p verbosename "Phones" (
d verbosename "Desc"
a type integer verbosename "" alias pa format "%10d"
p verbosename "" alias pp type integer
s verbosename "" type integer
)*
z verbosename "Extra stuff" (
a ( a b c ) b c d e f g h
)
c verbosename "Comments"
Figure 11.9: An example of a schema showing all options