I am creating a database with a backend and frontend. The backend consists of a
Products table and many other tables. The products table in an .mdb file by
itself is over 2 meg.
2 Mbyte is a very small database. Most of the production databases
that I work with run well over 10 MByte, 100 MByte is not at all
unusual; Access is limited to 2 GByte (2048 meg).
I thought about putting the products table in a file by
itself and all the other tables in another file. I anticipate there will be a
need for changes in the other tables and since communication is over the
internet, having the products table in a different file would make a smaller
file to email back and forth. I need to have referential integrity enforced
between the products table and other tables and I also need cascade update and
cascade delete. ...
Is there a way to enforce referential integrity between tables in different .mdb
files and set up cascade delete and cascade update between the tables?
No, there is not. Think about it: you have A.mdb over here, B.mdb over
there. You set up some constraints in A.mdb controlling what records
can and cannot be added to a table in B.mdb.
That's fine if you open A.mdb directly. But if I were to open B.mdb by
itself, or by linking from X.mdb, the rules in A.mdb aren't even
*visible*, much less enforcable.
Relational integrity can be enforced only within the database
containing the tables.
And don't worry about 2 MByte. Compact regularly, zip the file before
transmitting it over the internet, and you'll be fine.