I always wondered about one relevant (for me) but not existent feature of all the relational databases I worked with: the impossibility to namespace tables.
in MySQL, for example, you can fully qualify the table with the database name, such as dbname.tablename
, with the database acting as a "prefix" or "namespace". However, this feature stops here, and does not take you very far. Namespace support would grant you the possibility to have a syntax like dbname.namespace.table
. You could group related tables into different namespaces, such as (for a blog)
db.userdata.logininfo
db.userdata.preferences
db.postdata.content
db.postdata.acls
or
db.blog.whatever
db.wiki.whatever
db.common.auth
This would allow to stay within the same database (exploiting all the advantages of such setup) while at the same time granting a more flexible and self-documenting environment. Most of the time, however, I found that an underscore in the table name is used to serve this purpose as an apparent workaround.
My questions are : do DBMS with such feature exist (maybe with a different name)? is it deemed not important enough in database design practices to be granted support ?