Subject Design issue
Author Juan Pedro López Sáez

I've got a Firebird database storing data related to clients with the
following structure:

- Some tables, commons to every client, exist just once.

- Some other tables exist in a per client basis. Every new client has
his "private" tables. These tables are selected by the name. They all
share the same name but a little suffix which identifies everyone from
the others (ie: there is a GROUPS_0 table for a client and a GROUPS_1
for another client).

When I first designed the database, I was thinking in improving queries

Now I'm not sure about the goodness of this schema. I find lots of
problems when I want to create a new client because I have to shutdown
the database to create his specific tables. I also have problems when I
have to modify some metadata because it must be done to every client's

The question is: can anybody tell me if my database design is good
enough to keep it or should I change it and avoid repeating tables for
every new client?

Another related issue: sometimes, either if I backup the database or if
I create lots of new tables (DDL statements), because I need to create
many new clients, I receive the following exception: lock manager out of

Why this could be happening and what can I do to solve it?

Thank you very much.

Juan Pedro Lopez
Juan Pedro López Sáez