Subject | Design issue |
---|---|
Author | Juan Pedro López Sáez |
Post date | 2003-08-18T18:05:38Z |
Hello,
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
speed.
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
tables.
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
room.
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
ALTIRIA TIC, S.L.L.
www.altiria.com
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
speed.
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
tables.
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
room.
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
ALTIRIA TIC, S.L.L.
www.altiria.com