Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Débuter
Débuter Forum d'entraide : Débuter en base de données avec PostgreSQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/04/2011, 15h34   #1
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Par défaut De l'utilité du schéma "public"

Bonjour à tous

J'ai découvert il y a quelque temps l'utilité des schémas qui sont à Postgres ce qu'un dossier est au système de gestion de fichiers.

Donc comme je travaille actuellement sur un projet, j'ai créé ma base en la découpant par grands groupes de travaux ; chaque groupe étant placé dans un schéma précis. Ainsi le schéma "truc" contiendra toutes les tables nécessaires à gérer un truc, le schéma "chose" contiendra toutes les tables nécessaires à gérer une chose.

Bien entendu les triggers, les séquences et les index des tables sont aussi créés dans le schéma qui va bien. Et je me retrouve en final avec un schéma "public" totalement vide. Donc je me demandais déjà à quoi il peut bien servir dans mon cas et si on peut le supprimer...

Merci à tous les pros de Postgres qui me donneront leur avis à ce sujet...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h53   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Citation:
Envoyé par Sve@r Voir le message
Bonjour à tous

J'ai découvert il y a quelque temps l'utilité des schémas qui sont à Postgres ce qu'un dossier est au système de gestion de fichiers.
pas tout à fait, parce qu'il n'est pas possible de faire des schémas SQL de schéma SQL.... donc un seul niveau !
Citation:
Donc comme je travaille actuellement sur un projet, j'ai créé ma base en la découpant par grands groupes de travaux ; chaque groupe étant placé dans un schéma précis. Ainsi le schéma "truc" contiendra toutes les tables nécessaires à gérer un truc, le schéma "chose" contiendra toutes les tables nécessaires à gérer une chose.
C'est exactement ce qui faut faire.... Vous avez lu mon livre sur SQL ? ;-)
Citation:

Bien entendu les triggers, les séquences et les index des tables sont aussi créés dans le schéma qui va bien. Et je me retrouve en final avec un schéma "public" totalement vide. Donc je me demandais déjà à quoi il peut bien servir dans mon cas et si on peut le supprimer...
Public est le schéma SQL par défaut de PostGreSQL comme dbo est celui de SQL Server... Vous aurez tôt ou tard besoin de ce schéma. En effet, on peut imaginer que vous serez amener à créer des fonction ou des procédures qui peuvent être utilisées par tous les autres schémas... Dans le cas de public, vous n'avez pas besoin de préfixer la table, la fonction ou la vue par le schéma, car le moteur le remplace automatiquement...
Citation:
Merci à tous les pros de Postgres qui me donneront leur avis à ce sujet...
A noter, les schémas SQL font partie intégrante de la norme SQL !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 20h05   #3
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Citation:
Envoyé par SQLpro Voir le message
C'est exactement ce qui faut faire.... Vous avez lu mon livre sur SQL ? ;-)
J'ai parcouru les blogs. Il y a beaucoup de docs mais je n'ai pas vu celles qui parlent des schémas. De toute façon, une fois qu'on découvre ça, la première chose à laquelle on pense c'est "chouette, je vais pouvoir découper ma bdd"

Citation:
Envoyé par SQLpro Voir le message
Public est le schéma SQL par défaut de PostGreSQL comme dbo est celui de SQL Server... Vous aurez tôt ou tard besoin de ce schéma. En effet, on peut imaginer que vous serez amener à créer des fonction ou des procédures qui peuvent être utilisées par tous les autres schémas...
C'est peut-être vrai. J'ai d'ailleurs remarqué, après avoir supprimé ce schéma, que pg_dump ne mettait pas l'instruction "drop schema public" (alors qu'il met bien tous les autres drop). Et donc si on régénère la base depuis un dump précédé d'un create database, on retrouve ce schéma mais avec des droits par défaut ce qui est pas forcément tiptop question sécu.
J'ai donc préféré le garder afin de pouvoir le contrôler (lui mettre des droits spécifiques que pg_dump prend en compte, etc).

Citation:
Envoyé par SQLpro Voir le message
A +
Bye
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h40.


 
 
 
 
Partenaires

Hébergement Web