I know that none of the following topics is new or revolutionary, but that rather all of them have somehow been implemented yet. These tables are typically the center of any bigger module. No usual transaction should result in any change in such a table. Most of the information stored in these tables is entered directly by the user. These tables are typically introduced by some module and occasionally extended by some columns by other modules.
Auxiliary tables are probably the most static tables of the whole system.
They are maintained only by the user. No change in a table of this type may be done automagically by the system. We don't do this in GNUe, because it may come that for some code we will need additional columns. Instead, GNUe uses a seperate table for each type of code. Something very related to auxiliary tables are matrix tables.