Search Postgresql Archives

Re: schemas for organizing tables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Seb wrote:
Thanks for these thoughts.  Perhaps I can describe a cartoon of this
database to explain what I'm trying to accomplish.

The database stores information related to biological research.  The
bulk of the tables describe things like individual ID, morphometrics,
and behavioural data on all the individuals in several studies.
However, there are a few tables that do not relate to the research
itself (the main use of the DB), but to logistics.  For example, a group
of tables store information on purchases and inventory of material
required for the overall project.  These tables would never (or almost)
be queried together with the others.

So typically we have two types of uses: research and
preparation/logistics for the project.  We wouldn't want to even see the
logistcs tables for research work, whereas we would like to see only
these ones for preparation/planning.  As the project and number of
tables grow, we could see a similar divergence within the group of
tables related to research.  Are these good reasons for separating these
units into schemas?

If you mean using just 2 schemas for those 2 distinct tasks, then yes, that may be a reasonable organization strategy. However, it is important to keep yourself flexible to a degree such as to change your mind on this decision or reorganize now and then. Similar to how you should expect you may refactor or reorganize your program now and then, though you could design now for how you reasonably expect to be for awhile. This all said, I could go either way. Your proposal is a more reasonable purpose for using 2 schemas, but at the same time, because you only have 30 tables for now, it may not hurt to keep them together in 1 schema anyway.

Okay, bottom line, for simplicity, stick to a single schema for everything until you can point to a clear benefit for splitting. If you're on the fence and could go either way with no clear benefit of one way over the other, then just use 1 schema for everything by default as that is a simpler approach.

As for the possibility of supporting another DBMS later without schema support, well ... Postgres is free and is generally superior to all other free DBMSs, and probably most of the DBMSs you would have to choose from also support schemas anyway ... or if you need to use the others you could fake it with common prefixes for your table names.

-- Darren Duncan

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux