回答編集履歴
1
少し加筆
test
CHANGED
@@ -33,3 +33,41 @@
|
|
33
33
|
デフォルトの設定を与えるやり方はいくつもあるため、気になる場合には
|
34
34
|
|
35
35
|
[第33章 libpq — C ライブラリ](https://www.postgresql.jp/document/13/html/libpq.html)の33.14. 環境変数 以降をチェックすると良いかもしれません。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
データベースに保持されるデータはテーブルに格納されますが、
|
40
|
+
|
41
|
+
データベース内でスキーマという概念があり、スキーマの下にテーブル(やビュー)があります。
|
42
|
+
|
43
|
+
何もしなくてもpublicというスキーマがあって、スキーマを指定しない場合はpublicが使われます。
|
44
|
+
|
45
|
+
[5.9. スキーマ](https://www.postgresql.jp/document/13/html/ddl-schemas.html)によると、
|
46
|
+
|
47
|
+
> スキーマの使用が好まれる理由はいくつかあります。
|
48
|
+
|
49
|
+
>
|
50
|
+
|
51
|
+
> ・1つのデータベースを多数のユーザが互いに干渉することなく使用できるようにするため。
|
52
|
+
|
53
|
+
> ・管理しやすくなるよう、データベースオブジェクトを論理グループに編成するため。
|
54
|
+
|
55
|
+
> ・サードパーティのアプリケーションを別々のスキーマに入れることにより、他のオブジェクトの名前と競合しないようにするため。
|
56
|
+
|
57
|
+
>
|
58
|
+
|
59
|
+
> スキーマは、入れ子にできないという点を除き、オペレーティングシステムのディレクトリと似ています。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
という特徴があるので、使い方によってはデータベースが一つでもスキーマで分けておくことで
|
64
|
+
|
65
|
+
同じ名前のテーブル(やビュー)が組める使い方が出来ます。
|
66
|
+
|
67
|
+
便宜的に、データベースに接続するユーザー名(ロール)を使ってスキーマ名に流用するケースがあります。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
データベースを分けてしまうと、複数のデータベースを横断するクエリーは成り立ちません。
|
72
|
+
|
73
|
+
逆に言うと、データベースを分けてしまえば干渉することなく管理できるとも言えます。
|