5.2. Calendar Database (caldb.rsl)
(****
*
* Module CalendarDB defines the major database objects of the calendar system.
*
* NOTE: this is work in progress. Several objects are yet to be defined, most
* notably Option. Also, more complete object descriptions are needed.
*
*)
module CalendarDB;
from Schedule import ScheduledItem;
export CalendarDB;
object CalendarDB is
components: UserCalendars and UserDB and GroupDB and GlobalOptions;
description: (*
The full calendar DB is comprised of the users' calendars, the user
rolodex database, the group database, and the collection of
administrative options.
*);
end;
object UserCalendars is UserCalendar*;
object UserCalendar is UserName and UserOptions and ScheduledItem*
description: (*
A use calendar is named with its own set of options and a list of
events for the user.
*);
end UserCalendar;
object UserName is string;
object UserOptions is Option*;
object Option is ...;
object UserDB is UserRecord*
components: ;
description: (*
The UserDB is the repository of registered user information, consisting
of a collection of UserRecords.
*);
end ;
object UserRecord is
components: UserName and UserId and EmailAddress and OtherInfo;
description: (*
A UserRecord contains the basic information for a registered user of
the calendar system: UserName, unique UserId, EmailAddress, and general
OtherInfo component for information such as home mailing address.
*);
end UserRecord;
object UserId is string;
object EmailAddress is string;
object OtherInfo is string;
object GroupDB is GroupRecord*
components: ;
description: (*
The GroupDB is the repository of user group information, consisting of
a collection of UserRecords. The primary purpose of groups is for
meeting scheduling. Secondarily, groups can be viewed by users for
general information purposes, i.e., what users belong to what
organizational groups.
*);
end GroupRecord;
object GroupRecord is
components: GroupName and GroupLeader and Members;
description: (*
A Group consists of its GroupName, the name of its GroupLeader, and a
list of its user Members.
*);
end GroupRecord;
object GroupName is string;
object GroupLeader is UserName;
object Members is UserName*;
object GlobalOptions is Option*;
end CalendarDB;
Prev: schedule.rsl
| Next: view.rsl
| Up: spec
| Top: index