или всё оставить в схеме public?"
Есть у меня следующие
Финансвоая часть. Полностью изолированные 4 таблицы, отвечающие только за движение средств. Не связаны ни с чем кроме как между собой
Картотека. Полностью изолированные 3 таблицы, отвечающие за информацию о пользователе. Такие сущности как контактные данные, телефоны, юр/физ лицо, день рождения и прочее
Пользователи: Полностью изолированные 6 таблиц, отвечающие за информацию по авторизации.
Адресная база: Полностью изолированные 8 таблиц, содержащие информацию об адресах
Таких групп таблиц более 10 и каждая отвечает за какую либо самостоятельную логику у каждой есть процедуры, вьюхи для распределения прав на основе роли пользователя в БД
Также есть таблицы многие кол многим для связи этих групп таблиц.
Дикое желание сделать по схеме на каждую группу таблиц. Провести рефакторинг процедур, перенеся туда изолированные. В паблике оставить только таблицы многие ко многим и общие процедуры.
Но:
а) многие фреймворки не умеют кастомно работать со схемами.
б) не знаю насколько это плохо со стороны архитектуры
Адресная база 107 таблиц. Прошу прощения
Схемы помимо разделения несвязанных обхектов упрощают управления правами на объекты схемы. Со стороны архитектуры выглядит изящно. Фреймворки, которые не умеют работать со схемами, должны быть покрашены в зеленый цвет и выброшены в траву
Только учти, если количество схем будет сотни сам потом замучаешься.
В oracle схемы именно так и работают. Но в postgres'e схемы это скорее package, они не предназначены для изоляций. Можно конечно извратиться и использовать search path, но если реально разные не связанные сущности, то можно разделить вообще на разные базы
Обсуждают сегодня