SQL

Зачем нужны схемы (public) в postgresql?

В MySQL такого не было, начал пользоваться postgresql увидел новое понятие схем.
Не понимаю для чего они нужны, при подключении из программ они обычно не указываются, и используется public по умолчанию.

В чем задумка схем, для чего они вообще используются?
из доков:

There are several reasons why one might want to use schemas:

To allow many users to use one database without interfering with each other.
To organize database objects into logical groups to make them more manageable.
Third-party applications can be put into separate schemas so they do not collide with the names of other objects.

Schemas are analogous to directories at the operating system level, except that schemas cannot be nested.

https://www.postgresql.org/docs/current/ddl-schemas.html

ну и там дальше про public...
Андрей Шеин
Андрей Шеин
64 500
Лучший ответ
В MySQL схемы есть, но называются они "базы данных". Везде, где в командах MySQL пишется DATABASE, подразумевается SCHEMA. И если ты вместо DATABASE напишешь SCHEMA, MySQL выполнит команду с точно таким же результатом.

А вот слоя баз данных - в смысле стандарта SQL - в MySQL нет. От слова "совсем".

Так что относись к схеме public в PostgreSQL как к создаваемой по умолчанию базе в MySQL.

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

А вот базы данных полностью изолированы друг от друга. Через подключение к БД невозможно обратиться к схемам и таблицам другой БД.
СШ
Сергей Шатов
59 517