Меня всегда интересовала одна важная (для меня), но не существующая особенность всех реляционных баз данных, с которыми я работал: невозможность создания таблиц пространства имен.
Например,
в MySQL можно полностью квалифицировать таблицу с именем базы данных, например, dbname.tablename
, при этом база данных выступает в качестве «префикса» или «пространства имен». Тем не менее, эта функция останавливается здесь, и не очень далеко. Поддержка пространства имен предоставит вам возможность иметь синтаксис вроде dbname.namespace.table
. Вы можете сгруппировать связанные таблицы в разные пространства имен, например (для блога)
db.userdata.logininfo
db.userdata.preferences
db.postdata.content
db.postdata.acls
или
db.blog.whatever
db.wiki.whatever
db.common.auth
Это позволило бы оставаться в одной базе данных (используя все преимущества такой настройки), в то же время предоставляя более гибкую и самодокументируемую среду. Однако большую часть времени я обнаружил, что подчеркивание в имени таблицы используется для достижения этой цели в качестве очевидного обходного пути.
Мои вопросы: существуют ли СУБД с такой функцией (может быть, с другим именем)? считается ли он недостаточно важным в методах проектирования баз данных для предоставления поддержки?