powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Архитектура?
10 сообщений из 10, страница 1 из 1
Архитектура?
    #38983684
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, есть небольшая проблема.

Есть некая база со своими таблицами и пользователями, необходимо сделать несколько таких баз, чтобы пользователи могли писать только в свою базу, а select делать по всем.

Как лучше организовать такой вариант?

Нашел несколько вариантов:
1) сделать разбиение на уровне схем
2) организовать несколько бд, чтобы все висели на одном ip, но на разных портах.

Заинтересовал второй вариант, как можно такое провернуть в postgres (windows)? гуглеж особо не помог, скорей всего ищу не то, что надо.
...
Рейтинг: 0 / 0
Архитектура?
    #38983764
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maks28rusДобрый день, есть небольшая проблема.да есть, и она, судя по вопросу -- в прокладке между стулом и консолью
maks28rusЕсть некая база со своими таблицами и пользователями, необходимо сделать несколько таких баз, чтобы пользователи могли писать только в свою базу, а select делать по всем. вот это как раз не необходимо, а привиделось негодной прокладке
maks28rus
Как лучше организовать такой вариант?

Нашел несколько вариантов:
1) сделать разбиение на уровне схем

т.е. один инстанс и одна БД ? это немного лучше. партицирование по собственнику. делается руками.
maks28rus2) организовать несколько бд, чтобы все висели на одном ip, но на разных портах.

ставится несколько инстансов в разные порты. Оно вам надо ?
maks28rusЗаинтересовал второй вариант, как можно такое провернуть в postgres (windows)? гуглеж особо не помог, скорей всего ищу не то, что надо.
есть третий вариант -- инстанс (и порт) один, а БД разные (разные строки подключения в части dbname). (не путать бд со схемой, тем паче -- таблицей).

2 последних можно опрашивать plproxy. это если совсем погрязнуть в согласованиях захотелось. или бд реально большие.
...
Рейтинг: 0 / 0
Архитектура?
    #38983813
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwqставится несколько инстансов в разные порты. Оно вам надо ?

а какие минусы этого варианта?
...
Рейтинг: 0 / 0
Архитектура?
    #38983839
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maks28rusqwwqставится несколько инстансов в разные порты. Оно вам надо ?

а какие минусы этого варианта?

а какие плюсы? поддерживать сложнее, управление ресурсами хуже (у каждого инстанса свои shared_buffers, свои коннекты).

если нужно несколько баз, то что мешает это сделать в одном инстансе? отобрать права на запись у пользователя не проблема.
если хочется делать запросы, которые будут извлекать данные сразу из нескольких "баз", то лучше делать в одной базе и разбивать по схемам.

если все "базы" строго однотипны то и на схемы разбивать не рекомендуется, т.к. это только усложнит все. добавить какой-то идентификатор пользователя в таблицы, запись организовать через хранимки.
...
Рейтинг: 0 / 0
Архитектура?
    #38983853
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexius,

да базы полностью одинаковые. Чтобы было понятней, например, база данных библиотеки. Есть несколько библиотек и каждая должна иметь что то вроде своей "локальной" бд (у всех набор таблиц один), а поиск делать во всех сразу базах.

Была идея все хранить в одной базе, но в таблице добавить столбец - "владелец", который бы показывал кто может изменять и удалять эту запись. Но это похоже больше на костыль. Остался вариант со схемой, бд и инстансами. Не совсем понимаю разницу между разделением на уровне схем и бд. Понятно что это разные уровни иерархии, но не понимаю различия между ними.

Alexiusзапись организовать через хранимки
это хранимые процедуры?

Начал делать через разные бд в одном инстансе, пока вроде все работает. Использую java+hibernate.
...
Рейтинг: 0 / 0
Архитектура?
    #38983871
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maks28rus,

существенное различие между разделением на базы/схемы в том, что в одном запросе нельзя (без костылей) использовать таблицы из разных баз, а из разных схем можно.

Была идея все хранить в одной базе, но в таблице добавить столбец - "владелец", который бы показывал кто может изменять и удалять эту запись. Но это похоже больше на костыль.

чем? искать в такой базе будет намного проще. обслуживать тоже (добавлять новые таблицы, поля, и т.п.)

это хранимые процедуры?

да
...
Рейтинг: 0 / 0
Архитектура?
    #38983886
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexiusmaks28rusпропущено...


а какие минусы этого варианта?

а какие плюсы?
как бы плюс -- отдельный кластер/базу. можно клонироваться переносом директории дата (т.е. практически "отмонтировать" / "примонтировать" на новом месте). Всё это оправданно для потенциально больших баз без перекрёстной, по областям владения, логики (т.е. когда запрос к шардам -- механическая сумма [union all] возвратов). и всё это обслуживаемо plproxy. но скорее всего -- всё это не нужно в случае тс.
...
Рейтинг: 0 / 0
Архитектура?
    #38983890
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maks28rus<>
Была идея все хранить в одной базе, но в таблице добавить столбец - "владелец", который бы показывал кто может изменять и удалять эту запись. Но это похоже больше на костыль.<>это неверно

это неверно даже в случае шардинга. как только у вас данные захотят мигрировать с ноды на ноду в режиме мультимастера -- вам захочется зафиксировать истинного владельца (или даже последнего редактора, что сложнее в разрешении коллизий) данного. а это -- идентификатор ноды--владельца (или последнего редактора) на уровне записи.
...
Рейтинг: 0 / 0
Архитектура?
    #38984199
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а с hibernate кто может подсказать как в рантайме мапинг делать, чтобы организовать работу с разными бд?
...
Рейтинг: 0 / 0
Архитектура?
    #38984596
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь.
Разобрался :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Архитектура?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]