PostgreSQL - нужны ли вам schemes?
От: Baiker  
Дата: 06.12.23 12:55
Оценка:
Ребят, нужна небольшая статистика/мнения по поводу одной фичи. Поделитесь пожалуйста опытом!
В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).
Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!
PS
Спрашиваю здесь, потому что это именно прикладной вопрос для программистов, насколько "разветвлённые" у них базы и есть ли смысл заморачиваться с нэймспэйсами.
Re: PostgreSQL - нужны ли вам schemes?
От: Darky Darkov Россия  
Дата: 06.12.23 13:26
Оценка: +3
Здравствуйте, Baiker, Вы писали:

B>Ребят, нужна небольшая статистика/мнения по поводу одной фичи. Поделитесь пожалуйста опытом!

B>В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).
B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

Мы разнесли наши, можно сказать, микросервисы, в разные схемы, чтобы иметь возможность разнести их потом в разные базы при увеличении нагрузки. Для одного "микросервиса" даже понадобилось.
Re: PostgreSQL - нужны ли вам schemes?
От: fmiracle  
Дата: 06.12.23 13:26
Оценка: +1
Здравствуйте, Baiker, Вы писали:

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!



20-30. Вот у меня сейчас проект (на Оракле, правда), в той схеме, где работает наша команда — более 200 таблиц.

Но количество это еще не самое главное. Более важно разделение. Рядом работает еще несколько команд, у них тоже там по 100 и более своих таблиц, но они никак не перемешиваются с нашими таблицами и нет путаницы "а чье это и зачем вообще" при работе. Интеграция с ними местами есть на уровне базы, но только через небольшое количество оформленных вьюшек и синонимов.

И имена таблиц в между командами вообще запросто могут и совпадать. У нас Order и у них Order, но с совсем другим смыслом. Никакого удовольствия нет планировать структуру таблиц а при начале работ обнаружить что соседи накидали своих с такими же (или просто очень похожими) названиями.
Re: PostgreSQL - нужны ли вам schemes?
От: _FRED_ Черногория
Дата: 06.12.23 14:01
Оценка: +1
Здравствуйте, Baiker, Вы писали:

B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?


Схемы могут быть полезны тогда, когда какая-то часть (или части) базы данных проектируется независимо от других частей. Дабы избежать конфликтов имён (хотя тут многие предпочитают просто, например, префиксы в именах).
Так же по схемам можно разграничивать права. Если ни то ни другое вам не нужно, то, быть может, и схемы не нужны.
Help will always be given at Hogwarts to those who ask for it.
Re: PostgreSQL - нужны ли вам schemes?
От: klopodav  
Дата: 06.12.23 14:15
Оценка: +1
B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

Еще один пример использования схем, в дополнение к вышеперечисленным — когда одна часть базы по составу таблиц "постоянная", другая "переменная" (т.е. туда за время жизни системы таблицы могут штатным образом добавляться). Удобно эти части разнести в разные схемы, чтобы не возникало бардака.
Re: PostgreSQL - нужны ли вам schemes?
От: IT Россия linq2db.com
Дата: 07.12.23 00:43
Оценка:
Здравствуйте, Baiker, Вы писали:

B>Спрашиваю здесь, потому что это именно прикладной вопрос для программистов, насколько "разветвлённые" у них базы и есть ли смысл заморачиваться с нэймспэйсами.


Используем. В MS SQL. В основном для логического разделения таблиц по подсистемам. Staging таблицы отдельно. Когда таблиц всего пару сотен, как тут у одного коллеги с рукалицом, то ещё можно обойтись. Если больше, то схемы помогают.
Если нам не помогут, то мы тоже никого не пощадим.
Re: PostgreSQL - нужны ли вам schemes?
От: vsb Казахстан  
Дата: 07.12.23 02:29
Оценка: +1
Здравствуйте, Baiker, Вы писали:

B>Ребят, нужна небольшая статистика/мнения по поводу одной фичи. Поделитесь пожалуйста опытом!

B>В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).
B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!

B>PS
B>Спрашиваю здесь, потому что это именно прикладной вопрос для программистов, насколько "разветвлённые" у них базы и есть ли смысл заморачиваться с нэймспэйсами.

Использую крайне редко, на моей памяти только один раз использовал. Но всё же считаю нужной фичей, вполне вижу варианты, когда оно может пригодиться.
Re: PostgreSQL - нужны ли вам schemes?
От: _ABC_  
Дата: 07.12.23 03:49
Оценка: 82 (1) +1
Здравствуйте, Baiker, Вы писали:

B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

Полезная, использую в MS SQL Server в своём проекте, который создавал с нуля.

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того?

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

B>Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!

Вопрос не в путанице, вопрос в удобстве логического разделения и экономии времени. На том же интеллисенсе, например. Я не всегда помню все имена таблиц и, особенно, хранимок, но схемы я помню. Набрал схему, посмотрел по интеллисенсу, что она вывела, дальше работаешь. Новые люди, которые приходили к нам, тоже говорили, что логическая разбивка по схемам помогает им понять структуру БД намного быстрее. Опять существенная экономия времени. И при этом у меня нет двух объектов с одним именем, но в разных схемах.
"Потерял дар речи за зря"(с).
Re: PostgreSQL - нужны ли вам schemes?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.12.23 06:53
Оценка: +1
Здравствуйте, Baiker, Вы писали:

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!


Ключевое выделил. Если хитрых задач не было, если база монопольно управляется приложением, то схемы не нужны.
Re: PostgreSQL - нужны ли вам schemes?
От: Qulac Россия  
Дата: 07.12.23 07:14
Оценка:
Здравствуйте, Baiker, Вы писали:

B>Ребят, нужна небольшая статистика/мнения по поводу одной фичи. Поделитесь пожалуйста опытом!

B>В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).
B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!

B>PS
B>Спрашиваю здесь, потому что это именно прикладной вопрос для программистов, насколько "разветвлённые" у них базы и есть ли смысл заморачиваться с нэймспэйсами.

Наличие нэймспэйсов — это только полдела, нужно что бы инструмент работы с бд, их как то адекватно отображал(что-то типа папок с объектами бд) что бы комфортно можно было работать, а так используем прифигсы.
Программа – это мысли спрессованные в код
Re[2]: PostgreSQL - нужны ли вам schemes?
От: hlt Россия  
Дата: 07.12.23 07:58
Оценка: 9 (1)
Здравствуйте, Qulac, Вы писали:

Q>Наличие нэймспэйсов — это только полдела, нужно что бы инструмент работы с бд, их как то адекватно отображал(что-то типа папок с объектами бд) что бы комфортно можно было работать, а так используем прифигсы.


Чем не устраивает DBeaver или любой другой (они все объекты по схемам отображают)?
Re[3]: PostgreSQL - нужны ли вам schemes?
От: Qulac Россия  
Дата: 07.12.23 08:06
Оценка:
Здравствуйте, hlt, Вы писали:

hlt>Здравствуйте, Qulac, Вы писали:


Q>>Наличие нэймспэйсов — это только полдела, нужно что бы инструмент работы с бд, их как то адекватно отображал(что-то типа папок с объектами бд) что бы комфортно можно было работать, а так используем прифигсы.


hlt>Чем не устраивает DBeaver или любой другой (они все объекты по схемам отображают)?


Тем, что на прод всем не поставишь, а без лазанья на проде в бд, у нас как-то не получается, бд юзаем через SSMS а она везде стоит.
Программа – это мысли спрессованные в код
Re[4]: PostgreSQL - нужны ли вам schemes?
От: hlt Россия  
Дата: 07.12.23 09:02
Оценка:
Здравствуйте, Qulac, Вы писали:

hlt>>Чем не устраивает DBeaver или любой другой (они все объекты по схемам отображают)?

Q>Тем, что на прод всем не поставишь, а без лазанья на проде в бд, у нас как-то не получается, бд юзаем через SSMS а она везде стоит.

Зачем "ставить на прод" дб-тул? Почему нельзя поставить "всем"? Зачем вообще на прод лазать, да ещё и "всем"?
Re[4]: PostgreSQL - нужны ли вам schemes?
От: vsb Казахстан  
Дата: 07.12.23 09:22
Оценка: 2 (1)
Здравствуйте, Qulac, Вы писали:

Q>>>Наличие нэймспэйсов — это только полдела, нужно что бы инструмент работы с бд, их как то адекватно отображал(что-то типа папок с объектами бд) что бы комфортно можно было работать, а так используем прифигсы.


hlt>>Чем не устраивает DBeaver или любой другой (они все объекты по схемам отображают)?


Q>Тем, что на прод всем не поставишь, а без лазанья на проде в бд, у нас как-то не получается, бд юзаем через SSMS а она везде стоит.


Оффтоп, но посоветую cloudbeaver. Ставится на сервер. Предоставляет неплохой веб-интерфейс.
Отредактировано 07.12.2023 9:23 vsb . Предыдущая версия .
Re[5]: PostgreSQL - нужны ли вам schemes?
От: Qulac Россия  
Дата: 07.12.23 09:36
Оценка:
Здравствуйте, hlt, Вы писали:

hlt>Здравствуйте, Qulac, Вы писали:


hlt>>>Чем не устраивает DBeaver или любой другой (они все объекты по схемам отображают)?

Q>>Тем, что на прод всем не поставишь, а без лазанья на проде в бд, у нас как-то не получается, бд юзаем через SSMS а она везде стоит.

hlt>Зачем "ставить на прод" дб-тул? Почему нельзя поставить "всем"? Зачем вообще на прод лазать, да ещё и "всем"?


Под "всем" имеются ввиду клиенты, их разнообразные серверы это может быть и win 7 стоящий компьютере у девочки на ресепшене, так и последний win server. Да есть такие клиенты, которые экономят на it-инфрастрктуре.
Вообще у нас двухзенка со всеми ее недостатками.
Программа – это мысли спрессованные в код
Re[6]: PostgreSQL - нужны ли вам schemes?
От: paucity  
Дата: 07.12.23 12:35
Оценка:
Здравствуйте, Qulac, Вы писали:

hlt>>Зачем "ставить на прод" дб-тул? Почему нельзя поставить "всем"? Зачем вообще на прод лазать, да ещё и "всем"?


Q>Под "всем" имеются ввиду клиенты, их разнообразные серверы это может быть и win 7 стоящий компьютере у девочки на ресепшене,



Девочка на ресепшене использует базу через SSMS?

Еще и с правами owner'а небось?
Re[6]: PostgreSQL - нужны ли вам schemes?
От: hlt Россия  
Дата: 07.12.23 14:18
Оценка:
Здравствуйте, Qulac, Вы писали:

Q>Под "всем" имеются ввиду клиенты, их разнообразные серверы это может быть и win 7 стоящий компьютере у девочки на ресепшене, так и последний win server. Да есть такие клиенты, которые экономят на it-инфрастрктуре.

Q>Вообще у нас двухзенка со всеми ее недостатками.

А зачем клиентам дб-тул?
Клиенты обычно только патчи накатывают, им кроме liquibase и не нужно ничего.
Re: PostgreSQL - нужны ли вам schemes?
От: r0nd  
Дата: 08.12.23 04:16
Оценка:
Здравствуйте, Baiker, Вы писали:

B>В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).


По идее это используется везде где принят DDD, т.e. Enterprise, Banking…
...<< Dementor 1.5.2 ✪ Lets Play a Game ⚀⚁⚁⚃⚅>>
Отредактировано 20.12.2023 6:05 r0nd . Предыдущая версия .
Re: PostgreSQL - нужны ли вам schemes?
От: VladiCh  
Дата: 08.12.23 04:30
Оценка: +1
Здравствуйте, Baiker, Вы писали:

B>Ребят, нужна небольшая статистика/мнения по поводу одной фичи. Поделитесь пожалуйста опытом!

B>В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).
B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!

B>PS
B>Спрашиваю здесь, потому что это именно прикладной вопрос для программистов, насколько "разветвлённые" у них базы и есть ли смысл заморачиваться с нэймспэйсами.

Это не просто неймспейсы, потому что на схемы можно выставлять права.
Если у тебя большая база куда время от времени добавляются/удаляются объекты, то гораздо удобнее разнести их по схемам, на которые уже существуют определенные права, чтобы не управлять правами на каждый объект отдельно. Упрощается менеджмент прав. Другой юз кейс это когда задается search_path на конкретную схему. Например multi-tenancy, и подобные другие вещи, когда для нескольких (или для многих) пользователей данные хранятся в одной и той же структуре но физичеси разные. Тогда это можно разнести по разным схемам и задать каждому пользователю свой search_path, при этом дополнительного управления на уровне приложения почти не требуется.
Re: PostgreSQL - нужны ли вам schemes?
От: AndrewN Россия  
Дата: 08.12.23 10:29
Оценка:
Здравствуйте, Baiker, Вы писали:

B>Ребят, нужна небольшая статистика/мнения по поводу одной фичи. Поделитесь пожалуйста опытом!

B>В PostgreSQL есть такая штука, как scheme (что-то вроде namespace в пределах одной базы).
B>Вопрос: насколько полезным вы находите эту фичу и используете ли её вообще? Как часто в проектах вам вот требуется scheme?

B>Спрашиваю отчасти потому, что сидя в MS SQL никогда не использовал их scheme. Ну создам 20-30 таблиц — что с того? Путаницы никогда не возникало, потому что не было таких "хитрых" задач иметь, к примеру, две таблицы Person!

B>PS
B>Спрашиваю здесь, потому что это именно прикладной вопрос для программистов, насколько "разветвлённые" у них базы и есть ли смысл заморачиваться с нэймспэйсами.

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

Схема — дешевле, чем отдельный сервер БД под каждого Клиента, но при этом обеспечивает должный уровень изоляции данных клиентов друг от друга.
--------------------------------------------------------------
Правильно заданный вопрос содержит в себе половину ответа
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.