ユーザー管理で、効率よく6000件登録したい

質問全般・改善要望
返信する
cradle
メンバー
メンバー
記事: 37
登録日時: 2009年12月02日(水) 17:14

ユーザー管理で、効率よく6000件登録したい

投稿記事 by cradle »

[modx]
 バージョン: 1.0.3J


ユーザー管理で、6000件ほど登録したいのですが、効率のいい登録方法をご存知の方が折られましたらご教示下さい。
やはりデータベースでの登録という形になるのでしょうか。

お願い致します
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by soushi »

Webユーザのインポートであれば以下のようなプラグインを過去に作ってます。

[WebUserImportPlus]
http://ayd.jp/p_pc/modx/WebUserImportPlus.html

csv形式でユーザのインポートができます。
特徴としてはDBエンジンをInnodbにすればインポート処理に失敗した時にロールバックします。
ただ、思いつきで実装したので、使いづらかったり、機能が限定的なところが多々あります(^^;
まぁ、ないよりマシなプラグインだなという感じでしょうか…。

あとMODx本家にも似たようなアドオンがありますが、こちらのほうはもっと機能はシンプルです。

[WebusersImport]
http://modxcms.com/extras/package/?package=498

もし良ければお試しください :)
cradle
メンバー
メンバー
記事: 37
登録日時: 2009年12月02日(水) 17:14

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by cradle »

さっそくのご返事感謝致します。
今回はウェブユーザーの登録ではなく、「ユーザー」の登録に関してです。
言葉足らずですいません。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by sama55 »

cradle さんが書きました:今回はウェブユーザーの登録ではなく、「ユーザー」の登録に関してです。
6000人のユーザーに管理画面へのアクセスを許すことになりますよね?

以下は個人的な見解になりますが、これはMODxにおけるユーザー管理の基本理念から外れる発想で、プログラム的にも、運用的にも大変リスキーな気がします。議論の方向性として、6000人のユーザーが運用ユーザー(≠ウェブユーザー)でなければならない理由(管理画面にアクセスできなければならない理由)を先にはっきりさせた方が良い気がしますが・・・
cradle
メンバー
メンバー
記事: 37
登録日時: 2009年12月02日(水) 17:14

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by cradle »

おっしゃるとおりですね。ご忠告いただきありがとうございます。

利用目的としては、営業戦略の一環として、modxの管理画面を弊社の顧客に使っていただこうと考えたからです。
なぜユーザーIDが多数必要かというと、顧客の名簿とユーザーIDを紐付け、ログからアクセスの状況を把握し、
管理画面にアクセスがあった方に対して、より詳しい営業活動を行っていきたいと考えたためです。
このような使い方をされる方はあまりいないかもしれませんが
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by sama55 »

なるほど。ただごとではないと思いましたが、そういう理由ですか・・・
上記でも申し上げましたが、これは相当レアなニーズなので、はっきり申し上げて汎用的な部品は絶望的だと思います。ただ、運用ユーザーの情報構造(テーブルやフィールド構成)はウェブユーザーと似通っていることはご存知かと思います。従って、運用ユーザーのテーブル構成と登録過程で発行されるSQLを解析して新規に処理を組むか、soushiさんが示してくれた部品を応用・改造するしかないような気がします。

余談)仮に登録が出来たとしても、不特定多数の運用ユーザーが一つのシステム(管理画面)にガンガン入ってきますので、むしろ登録よりも、その後の対応の方が何倍も難しい気がします。
cradle
メンバー
メンバー
記事: 37
登録日時: 2009年12月02日(水) 17:14

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by cradle »

そうですか。データベースに関してはまったくの素人でして、手入力で入れるしかなさそうですね。
登録後の運用に関してもよく検討してみます。
ありがとうございました。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by soushi »

soushiです。

なるほどWebユーザではなく、管理画面にログインできるユーザの事でしたか(汗)
テーブル構造はWebユーザに通じるところがあるのでWebUserImportPlusモジュールの改造でなんとかなりそうですが、少しだけphp+dbの知識が必要になりますね…。

まったく別のアプローチになりますが、以下の方法はどうでしょうか。

*検証して頂くWebサイト全体にBasic認証を設定する
*Basic認証用のアカウントは6000人分用意し、MODx管理画面のログインIDは共通とする

apacheのログにBasic認証のユーザ名を残す事ができるので、ログ解析でアクセスしてきたユーザを特定できます。
思いつく長所・短所としては次の通りです。

*ユーザ認証が2重になるので、セキュリティが向上する
*2回認証があることで利用者の手間が増す
*6000人分の認証データを単一ファイルに保存するのでアクセスが多少重くなるかもしれない。(mod_auth_mysql等を使ってDBに入れてもいいかもしれません…と、結局DBを使う事になりますが(笑))
*管理画面上のユーザの細かな操作まで追えない

あとはsama55さんも書いてますが6000人が好き勝手にアクセスするとMODxのデータがぐちゃぐちゃにならないかなという心配もあります。
これは定期的にWebとDBをリセットするような機能を用意したほうがいいかもですね。
cradle
メンバー
メンバー
記事: 37
登録日時: 2009年12月02日(水) 17:14

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by cradle »

お返事ありがとうございます。なるほどその手がありましたか。認証が二重になってしまう手間はこの際仕方がないですね;
ユーザーの細かい導線の情報は今回収集しないので問題はありません。
WebUserImportPlusの改造は私には少し難しそうですので、Basic認証を使った方法を試してみようと思います。定期的なリセットに関してもこまめにするよう気をつけたいと思います。
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: ユーザー管理で、効率よく6000件登録したい

投稿記事 by soushi »

余談ですが、定期的なサイトのリセットはMODxのデモサイトでもやっています。

[デモサイト]
http://demo.modx.jp/

利用しているサーバ環境次第では使えないですが、こんな感じでリセットしています。
設定完了後のMODx全コンテンツを別のディレクトリに権限含めて全てコピー。DBはダンプをとります。
あとはcronで定期的(毎時5分)にコピーしたコンテンツと公開しているコンテンツの同期、DBはリストア処理をしてリセットをかけています。
コンテンツの同期はrsyncというコマンドを利用して差分の同期させることで結構素早く同期がとれます。DBは単純にmysqlコマンドでリストアしているだけです。

もうひとつおまけでリセット用のデータ一式はapacheユーザの権限ではアクセスできない領域に置いています。
MODx自体はphpコードも自由にセットできるため、リセット用データがいじられると元に戻せなくなってしまうので…。
不特定多数ではなく、決まったユーザしか使わないのであればここまで考えなくてもいいと思います。

御参考までに :)
返信する