Sobes.tech
Senior

What are schemas in PostgreSQL used for? Why can't everything be done in public?

sobes.tech AI

Answer from AI

Schemas in PostgreSQL are a way to logically separate database objects (tables, views, functions, etc.) within a single database. They allow:

  • Organizing objects into groups for easier management.
  • Avoiding name conflicts between objects.
  • Managing access rights at the schema level.
  • Ensuring data isolation and structure.

Using only the public schema is not recommended because:

  • All objects will be in one namespace, which complicates support and scaling.
  • It is harder to restrict access rights.
  • Less flexibility when working with different modules or application components.

Example of creating a schema and a table within it:

CREATE SCHEMA sales;
CREATE TABLE sales.orders (
    id SERIAL PRIMARY KEY,
    amount NUMERIC
);

Thus, schemas help structure the database and manage access more effectively.