Each box in this diagram represents a separate table (entity) within the menu database. A line between two tables signifies that a relationship exists between those tables. Each relationship is of the ONE-to-MANY variety; therefore the arrow at one end of the line indicates which of the two is the MANY entity, as in:
A ONE-to-MANY relationship is sometimes referred to as a PARENT-CHILD relationship. It means that an entry can exist on the ONE without any associated entries on the MANY, but an entry on the MANY cannot exist without an associated entry on the ONE (unless the relationship is optional, in which case the MANY is not associated with any entry on the ONE).
Note that a ONE-to-ONE relationship can exist, but only if the software restricts the MANY entity to a single occurrence. MANY-to-MANY relationships are illegal as such, but can be implemented as a ONE-to-MANY-to-ONE.
Below is a brief description of every table in the MENU database:-
MNU-USER (Users) contains an entry for every person who is able to access the system. Each USER must be linked to a SECURITY CLASS.
MNU-TRAN (Transactions) contains an entry for every module (aka: transaction or form or screen) within the system. This is a mixture of online transactions and menu screens (lists of options).
MNU-TRAN2 (Alternative Transaction Descriptions) contains a separate description for each foreign language in use. These are used for menu screens only.
MNU-CONTENTS (Menus) contains the list of Transactions that will be displayed whenever a transaction of type menu is selected. A menu may contain any number of transactions, including other menus, and a transaction may appear on any number of menus.
MNU-SECURITY (Security Classes) is a mechanism for organising users into groups. Each entry may be shared by a number of users, or dedicated to a single user. Each entry identifies a transaction that is to be used as the starting transaction whenever a user associated with this class passes through the logon screen.
MNU-TRAN-ACCESS (Transaction Access Profiles) contains the list of Transactions that are accessible to each particular Security Class. By default a transaction is not accessible unless the access flag is specifically turned ON.
MNU-ITEM-LIST (Transaction Item List) contains the list of items (fields) within a Transaction that may be disabled (refer to MNU-ITEM-ACCESS). This feature is not available in every transaction - only in those that contain potentially sensitive data.
MNU-ITEM-ACCESS (Transaction Item Access Profiles) contains the list of items (from MNU-ITEM-LIST) that are to be disabled whenever someone from that Security Class selects that Transaction. By default an item is accessible unless access is specifically turned OFF.
MNU-INIT-VALUES (Transaction Initial Values) contains initial values that will be loaded into a screen whenever a new entry is being created. This gives the system administrator the ability to change initial values without having to modify any program code.
MNU-CONTROL contains various parameters that may be varied for each installation.
MNU-HELP contains text that will be displayed whenever the online help screen is invoked.
SESSION (Session Log) contains details of when each user logged on and off, but only if the session logging switch on screen MNU_0070U is turned on.
SESS-MSG-LOG (Session Message Log) contains messages which have been created but not yet displayed to the user. Messages are only added to this table if the message logging switch on screen MNU_0070U is turned on.