All,
Just to add my thoughts and observations:
1. I have successfully added tables and queries not only to Access databases linked to the tables in an EAP file but also to database repositories (including Access 2007). EA seems to blissfully ignore the extra objects even though they are directly in the database used by EA.
2. Some tables in EA can be "hacked" to accept entries that EA will ignore but your application could use. For example, the t_document table can hold arbitrary text and binary data linked to elements PROVIDED THAT you set the DocType field for your added row to a value not used by EA. I'm not sure of all of the values EA uses, but they include ModelDocument (for linked RTF docs), DiagramHelper, SSDOCSTYLE, SSMODELDOCSTYLE, and SSBackup. I've tried this with EAP files and other repositories and it seems to cause no grief to EA - it accesses the table data it knows about just fine while ignoring the additional, "hacked" data. I'm currently messing around with an add-in that would do something like this to allow multiple "attachments" to elements of various types in addition to the Linked Document provided by EA. The only problem I can see with this approach is if Sparx decides to change the way they use the affected tables or if name collisions arise due to added features.
3. If you want your app to work completely within the EA universe as defined by Sparx, extra stuff can be associated with elements by adding the appropriate objects to EA, linking these objects to the element of interest, and then adding the extra stuff to the linked objects. For example, the 255 character length limitation for tagged values can be overcome without sacrificing the tag Notes field by creating a class with attributes having the tag names (and types!) desired, creating an instance of the class (an object) linked to the element of interest, then setting the Run State of each attribute to the desired value for each tag. Since the RunState field in t_object is a Memo field, arbitrarily long values can be assigned. (In fact, the RunState field is already a "hacked" field since Sparx packs multiple name-value pairs in the one field using a delimited string.) Similarly, multiple linked documents can be associated with an element by linking several Artifact objects to an element, then assigning a linked document to each Artifact.
Fred W