Группировка таблиц postgresql в схемах - PullRequest
3 голосов
/ 23 января 2012

В настоящее время я создаю приложение, которое содержит около 60 или около того таблиц, некоторые с метаинформацией, некоторые с фактическими данными и несколькими представлениями поверх них.

Для поддержания порядка япрефикс всех имен таблиц meta_ или view_ соответственно, но может быть, стоит просто поместить их в разные схемы в одной базе данных?

  1. Itэто обычная практика?
  2. Есть ли причины не делать этого?
  3. Могу ли я создать ограничения FK для разных схем?

PS: Судя по этому ответу, снижение производительности не представляется возможным: PostgreSQL: снижение производительности дляобъединение двух таблиц в отдельные схемы

1 Ответ

3 голосов
/ 23 января 2012

Вы можете использовать схемы любым удобным вам способом.Нет ограничений в принципе.Они особенно полезны, если вам нужно GRANT определенных прав на группы объектов, например, для разделения пользователей внутри базы данных.Вы можете в значительной степени обращаться с ними как с каталогами в файловой системе (хотя аналогия имеет свои ограничения).

Я использую префикс v_ для представлений и префикс f_ для функций.Но это в основном просто условное обозначение, позволяющее быстро находить эти объекты в текстовом поиске - если я, например, взломаю дамп.Сделайте такие префиксы short , вам придется набирать их до конца вашей жизни базы данных.Несколько префиксов из различных семантических слоев могут применяться к одному объекту.

Я бы не смешивал функциональные префиксы (v_ или view_) с семантическими префиксами (meta_)на том же уровне.Скорее создайте отдельную схему для мета-объектов и используйте префиксы для обозначения типов объектов во всех ваших схемах.

Какую бы систему вы ни выбрали, оставайтесь последовательными!Или это принесет больше вреда, чем пользы.

...