質問 > 管理機能 > データベースの階層 |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
miho |
投稿日時: 2008/8/6 13:13
対応状況: −−−
|
半人前 登録日: 2008/7/31 居住地: 投稿: 13 |
データベースの階層 教えてください。
やりたいこととしましては、1つのデータベースを使ってその中にeccubeを2つくらい入れたいんです。 イメージとしては、データベース名「shop」内のスキーマ(テーブル?)に、 「shop1」「shop2」を作ってそれぞれのスキーマにeccubeを入れて動かす感じです。 でもeccubeをインストールする際のデータベースの設定では、データベース名を入れるだけで、その下の階層までは設定出来ないように思えるのですが・・・。 どうかご教授お願いします。 開発環境 core-server Apache1.3.37 Perl5.8.8 PHP5.2.5 RUBY1.8.5 MySQL5.1.20 PostgreSQL8.2.4 Python2.4.3 SQLite33.3.7 SQLite2.8.17 |
seasoft |
投稿日時: 2008/8/6 22:03
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7365 |
Re: データベースの階層 スキーマとログインロールを同一名称にしたらどうだろう?
|
mirei |
投稿日時: 2008/8/7 15:10
対応状況: −−−
|
半人前 登録日: 2008/6/18 居住地: 投稿: 12 |
Re: データベースの階層 同じデーターベースに別のテーブル名を作成するイメージだよね?
|
seasoft |
投稿日時: 2008/8/7 21:04
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7365 |
Re: データベースの階層 微妙に違うかも。
【変更前】 shop.dtb_xxx (実態は shop.public.dtb_xxx) 【変更後】 shop.shop1.dtb_xxx shop.shop2.dtb_xxx こんな感じだと思う。
|
miho |
投稿日時: 2008/8/8 9:49
対応状況: −−−
|
半人前 登録日: 2008/7/31 居住地: 投稿: 13 |
Re: データベースの階層 ご回答をして頂いたみなさん、ありがとうございますm(_ _)m
あつがましくてすいません、さらに追加して質問させてください。 seasoftさんのおっしゃる通り、イメージはそのような感じです。 shop.shop1.dtb_xxx shop.shop2.dtb_xxx しかし、インストール時のデータベースの設定では、 「DB名」「DBパスワード」「DBユーザ」の3点しかなく、 DB名の先のテーブル名までは指定できないので、ソースファイルをいじるしかないのでしょうか? といっても、ソースをいじる技術はないのですが・・・。 |
ramrun |
投稿日時: 2008/8/8 12:54
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: データベースの階層 そもそもなんで1つのDBに2つのEC-CUBEを入れたいの?
CORE-SERVERならDBの作成は無制限でしょ? あとMySQLにスキーマってありましたっけ? XOOPSでは XOOPS_ がテーブル名の接頭辞としてインストール時に任意設定できるようになっていたと思うけど、そういう話? ↓がいまのEC-CUBEでどうなっているのかわかりませんが、ソースをいじるしかないのは確実ですよ。 XOOPSと共存させたいのですが http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=709&forum=2 |
seasoft |
投稿日時: 2008/8/8 20:42
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7365 |
Re: データベースの階層 引用:
PostgreSQL では、初期は DBユーザ = スキーマ だと、どこかで読みましたけど。(未確認) MySQL なのですか? なら、分かりません。
|
homan |
投稿日時: 2008/8/9 13:43
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: データベースの階層 僕は最近EC-CUBE2系を触るようになって、はじめて本格的にPostgreSQLに触れたので詳細は調べなければならないですが、PostgreSQLの初期スキーマはpublicです。
特にスキーマ名を指定しなければpublicだと暗黙の了解?で指定されますね。 http://www.postgresql.jp/document/pg833doc/html/ddl-schemas.html 以前、モールのようなものをEC-CUBEで組もうと思った時に、同じDBでありながらスキーマをわけてなんとかできないかなぁと思った事がありました。スキーマの仕組みはまだよくわかっていませんので実現可能かどうかもわかりませんが、同じDB内ならスキーマの枠を超えて集計とかできるかな?とおもったからです。 そうなれば顧客情報などをpublicのスキーマ内テーブルに、他の商品情報だとかはそれぞれのスキーマ内テーブルで保持って感じにできておもしろそうですよね なんにせよ、今のままであればPostgreSQLならばpublicスキーマ内にインストールされますから、ramrunさんがおっしゃるようにインストール部分やデータを読み込んでくる部分でスキーマを選択させるような改造が必要になるかと思います。 MySQLはおそらくスキーマはないとおもうので、これもramrunさんがおっしゃるように接頭辞や接尾辞をつけて別テーブル名としてインストールさせるようにするしかないですよね。 ----------------- もしくは、同じデータベースを利用する場合、店番号みたいなものをそれぞれのテーブルのカラムに追加して記録できるようにすれば、同じデータベースを見ながら、表向きにはそれぞれの店舗の商品を表示することも可能かもしれません。 どれを取るにしてもEC-CUBEを深く理解しておく必要がありますね。
|
seasoft |
投稿日時: 2008/8/9 19:44
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7365 |
Re: データベースの階層 引用:
????? ご提示いただいた URL を読む限り、私は「ユーザと同じ名前のスキーマを参照する」と解釈しましたけど… public は2番目のようですよ。 引用:
ちなみに、 引用:
とかで、あらかじめスキーマ作成しておく必要があると思いますよ。> スレ主さん
|
homan |
投稿日時: 2008/8/10 10:05
対応状況: −−−
|
仙人 登録日: 2007/7/2 居住地: 宮崎県宮崎市 投稿: 633 |
Re: データベースの階層 引用:
あ、本当ですね。ご指摘有難うございます! 引用: 5.7.2. publicスキーマ というところまでしみていなかったです ユーザ名スキーマがあるとそちらを優先するんですね。 後学のために役立てます! これが分かっていれば、たしかにseasoftさんがおっしゃる通りになるような気がします。 まずshop1やshop2のようなユーザー(8.1よりあとのバージョンからはロールと言うらしいですが)をPostgreSQL上でつくって、「shop」というデータベースにshop1、shop2というスキーマを作り、あとはインストール時に「DB名」「DBパスワード」「DBユーザ」を入れるだけでスキーマの優先順位の関係でユーザー名と同じ名前のスキーマにそれぞれインストールされるはずですね
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |