Questionnaireとは?

クイック ナビ |ホーム|各国のサイト|マイクロソフト サイトの検索:MSDN Home|MSDN ライブラリ|デベロッパー センター|スキルアップ センター|ダウンロード情報|開発ツール製品|コミュニティ|サイトマップ
要約 : Questionnaire Web サービスの機能とデザインについて説明します。Questionnaire Web サービスは、不動産 Web アプリケーション Jaggle のコンポーネントの 1 つであり、ユーザーの製品抽出条件を定義するための反復的な質問セットを、Web サイトのインターフェイスを通じたユーザーとのやり取りによって生成するための汎用的なメカニズムを提供します。
概要説明必要条件分析とデザインQuestionnaire のクラス設計方針適用されているデザイン パターン便利な機能
Questionnaire Web サービスは、関連する質問のセットを生成するための汎用的なメカニズムを提供することを目的としています。 次の図は、不動産アプリケーション Jaggle の全体的なアーキテクチャにおける Questionnaire Web サービスの位置付けを表しています。
ユーザーのニーズに合った不動産の検索を開始するために、まず Web サイトが、一連の質問を含むフォームをユーザーに提示します。 この質問に対するユーザーの回答に基づいて、Questionnaire Web サービスは、ユーザーの抽出条件をさらに絞り込むための新しい質問セットを生成します。 Web サイトと Web サービスとの間で、アンケート プロセスと呼ばれるこの質問と回答のサイクルが繰り返され、最終的には明確に定義された回答のセットが導き出されて Web サイトに送られます。 Web サイトは、その回答を使って抽出条件を生成し、それに基づいて Matching Web サービスが製品を検索します。
次のアクティビティ図は、アンケート プロセスの概要を示しています。この図は、ユース ケース内のアクティビティの詳細をカバーしています。 Web サイト アクタがアンケート プロセスをトリガし、プロセスのワークフローを促進します。
次の図は、Questionnaire のクラスの主要なシーケンスを表しています。 Questionnaire のクラスのやり取りはこれ以外にも考えられますが、グループ内の質問と回答の要求および格納のために Web サイトによって開始される主要なシーケンスはこの図のとおりです。
図 5. Questionnaire のクラスの主要なシーケンス (拡大するには画像をクリックしてください)
Questionnaire Web サービスに関連付けられているデータベースは、次の図に示すデータ モデルに基づいています。 この論理データ スキーマは正規化されています。 Groups、Question、Answer、および UserAnswer の各テーブルは、オブジェクト モデルから抽出できます。
Questionnaire Web サービスの質問と回答は、Groups テーブルにグループ化されています。 グループの中に別のグループを含めたり (Id/ParentId の構造) 、異なる質問セットに複数のルート グループを指定したりできます。 グループは質問と回答のセットであり、グループのセットは、特定のアンケート プロセスの質問と回答の包括的なセットです。 グループのセットは、Questionnaire の質問の流れを表します。この質問の流れは、アクティビティ図のループに相当します。
質問が開いた質問タイプの場合は、あらかじめ定義された回答を 1 つ以上持つことができます。これに対して、閉じた質問タイプの回答は 1 つだけです。
閉じた質問タイプ には以下のものがあります。Multiple = 多項選択式で単一選択の質問 (ドロップダウン リストまたはオプション ボタン) MultipleBetween = 多項選択式で範囲選択の質問MultipleSelect = 多項選択式で複数選択の質問 (チェック ボックス)
Questionnaire のすべてのクラスは、Jaggle.Questionnaire 名前空間に含まれています。 Questionnaire のクラスは 3 つのグループに分けることができます。 インターフェイス クラス、ビジネス ルール クラス、およびデータ アクセス クラス の 3 つです。 次の図は、これらクラスの実装を担う層とコンポーネントの対応を表しています。
Facade クラスは、LAN 環境でこのコンポーネントにアクセスする他のクラスのための主要なインターフェイスです。 次の表は、Facade クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
GroupsName によって識別される特定のグループ セットのルートを返します。
グループのセットを XML 形式で取得します。グループには質問と回答が含まれています。
特定のグループに対する特定のユーザーの回答を保存します。回答は XML 形式で保存されます。
ビジネス ロジック層は 1 つのコンポーネントを定義します。このコンポーネントには、Questionnaire Web サービス サブシステムのビジネス ロジックをカバーする一連のビジネス ルール クラスが含まれています。 ビジネス ルールは、データセットを操作してロジックを実行します。 この場合のデータセットは、データ アクセス層によって取得された、切断された XML オブジェクトです。 実装されるビジネス ルールは、主に、基になるデータへのアクセスを BusinessFacade に提供するデータセット上の薄い層です。 たとえば、ビジネス ルール クラスは、Iterator デザイン パターン (この後の「適用されているデザイン パターン」を参照) を使用するオブジェクトを提供します。 ビジネス ルールのより複雑な実装例となるのが Group クラスです。 このクラスは、特定の質問グループに対する回答を格納します。 さらに、エキスパート システム ルールに基づいて、グループ セットの中から次の質問グループを決定します。 この決定は、格納されている回答に基づいて行われます。
GroupCursor クラスは、質問と回答 (ユーザーが選択できる回答) のグループのセットへのアクセスを提供します。 グループには別のグループを含めることができますが、その関係を示すのがこのクラスです (Root 関数と Child 関数を参照) 。 GroupCursor クラスは、Group クラスのエントリ ポイントです。 次の表は、GroupCursor クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
コンストラクタ。 関連するグループのすべてのセットに対して GroupsCursor が初期化されます。
質問と回答のグループのセットを取得します。 このセットは、関連するグループの階層構造になっています。現状では、1 つのグループに含めることができるグループは 1 つだけです。
GroupCursor 内を移動するための再帰関数です。現状では、1 つのグループに含めることができるグループは 1 つだけです。
GroupsName で識別されるグループのセットに対する、指定されたユーザーのすべての回答を返します。
Group クラスは、Question クラスにアクセスするためのエントリ ポイントです。 次の表は、Group クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
特定のユーザーの回答をアーカイブし、セット内の次のグループの GroupId を返します。
Question クラスは、特定の質問に対する特定のアクセスを提供します。 Question クラスは、Answer クラスにアクセスするためのエントリ ポイントです。 次の表は、Question クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
コンストラクタ。 序数 (インデックス) によって識別される特定の質問を初期化します。
Answer クラスは、開いた質問タイプの特定の回答に対する特定のアクセスを提供します。 次の表は、Answer クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
コンストラクタ。 序数 (インデックス) によって識別される特定の回答を初期化します。
データ アクセス層は、ビジネス コンポーネントからの要求を待ち受けるステートレスなコンポーネントにすぎません。 データ アクセス層の役割は、基になるデータベースからできるだけ早くデータを取得することです。 取得したデータは、切断されたデータセット (SYSTEM.DATA 名前空間) として上の層に渡されます。
次の表は、DbConnection クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
次の表は、RetrieveData クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
質問のグループのセット (GroupsName で識別) に対する特定のユーザーの回答を取得します。
質問のグループ (GroupId で識別) に対する特定のユーザーの回答を取得します。
次の表は、StoreData クラスの関数の名前、スコープ、引数、戻り値、および簡単な説明の一覧です。
特定のグループに対する特定のユーザーの回答 (XML メッセージの一部) を格納します。
Facade を介さずに、Group クラスを使って質問と回答のグループにアクセスする場合は、複数の呼び出しが必要になります。 つまり、グループ コンストラクタを呼び出して、特定のグループを選択し、質問と回答を反復処理しなければなりません。 Questionnaire のクラスがインストールされているコンピュータでは直感的なインターフェイスを利用できますが、インターネット経由で Web サービスとしてアクセスする場合は、1 回の呼び出しで済む方が便利です。
Questionnaire の Facade から要求される質問と回答は XML ベースです。 Web サービスから呼び出し側に送られるこの XML データは、プレーンな文字列です。 XML データを文字列型として送ることによって、他のプラットフォームでも Questionnaire Web サービスを呼び出すことができるようになります。 SYSTEM.DATA のデータセットの形式でデータを送ることも可能ですが、他のプラットフォームからのアクセスが困難になります。 データセットは、インターフェイスの背後で XML 形式のデータも格納しています。 文字列型で使用している XML 形式もこれと同じであるため、XML 文字列を取得してそれをクライアント データセットに格納することができます。
スケーラブルなシステムを構築するために、可能な限りステートレスなプログラミング モデルに即した開発が行われました。
しかし、 Facade の下のクラスではメンバ変数を使用する (ステートフルにする) 必要性が高く、そうしないと、たとえばグループ内の 2 つの質問を取得するのにわざわざデータセットを再構築しなければならなくなってしまいます。これでは理想的な選択肢とはとてもいえません。
で必要な間だけです。しかもそれは、すべての質問と回答の XML データを 1 度に取得するためのごく短い時間です。 接続オブジェクトは、クラスのライフサイクル全体を通じてステートフルに保つ必要はありません。これは、接続プールの効率のためです。
パフォーマンス上の理由から、データベースへのラウンドトリップは可能な限り避けています。
Group クラスを使用すると、質問に対する特定のユーザーの回答の XML スキーマを調べることができます。 つまり、GetAnswersSchema 関数を使用して、StoreAnswers 関数を使って与えた回答の XSD スキーマを取得できます。 このスキーマは、SYSTEM.DATA 名前空間によって生成されます。 いったんこの操作が行われると、スキーマを含むファイルがディレクトリに書き込まれます。次にユーザーが GetAnswersSchema 関数を呼び出して回答の XML スキーマを要求したときには、このファイルが使用されるためラウンドトリップは必要ありません。
現状では、Questionnaire でストアド プロシージャは使用されていません。これは、パフォーマンス上の問題がなかったためです。 しかし、今後パフォーマンスに問題が出た場合は、ストアド プロシージャが、Questionnaire の速度を改善するための最初の選択肢の 1 つとなるでしょう。 また、メンテナンスの観点から、すべての SQL を Questionnaire のソース コードに含めることにしました。 当然のことながら、システムのパフォーマンスは実際の状況下で監視する必要があります。
Microsoft® Visual Basic® .NET では、パラメータの既定の引き渡し方法が新たに値渡し (ByVal) になっています。 しかし、クラス内では、パラメータを参照渡しで引き渡す方が効率的です。このため、プライベート関数とサブルーチンのパラメータには ByRef を使用することにしました。
多くの場合、発生する可能性のあるエラーをすべてテストするより try-catch 構造を使う方が簡単です。 たとえば、ある関数がテーブル行の内容を取得するシナリオでは、目的の行がテーブルに含まれているかどうかを確認するコードを書くという選択肢が考えられます。 しかし、その行にアクセスしてエラーが発生するかどうかを調べるという方法もあります。 後者の方がより簡単で、効率的な場合も多いため、今回は後者を採用しています。 しかし、この設計方針が常に有効であるとは限りません。たとえば、アルゴリズムを正しく機能させるためには、チェックしなければならないエラーもあります。 ソース コードで try-catch ブロックをチェックし、この設計方針が適用されている箇所を確認してください。
(Facade を使用するクライアント) は、間違った形式のデータを送信してエラーを引き起こす可能性があります。 このような場合に、エラーの原因を知らせるエラー メッセージをクライアント開発者に送ることには意味があります。 しかし、Questionnaire Web サービス自体または Questionnaire Web サービスが送信するデータによって発生したエラーに関するエラー メッセージは、クライアント開発者に送ってもあまり意味はありません。 たとえば、数値フィールドに文字列値を格納するという誤りを指摘する SYSTEM.DATA エラーはクライアント開発者にとって有用ですが、データベース接続の問題に関するエラー メッセージをクライアント開発者に送っても意味はありません。データベース接続のエラーはクライアントによって発生したわけではないからです。 このように、クライアントの役に立つエラー メッセージとそうでないエラー メッセージを区別することは大切ですが、今回は、実際上の理由から、すべてのエラー メッセージをクライアントのレベルまで上げて、有用性の判断はクライアント開発者に委ねることにしました。
.NET では、構成情報をレジストリに格納することもできますが、XML 形式の外部構成ファイルに格納することが推奨されています。 今回は、SYSTEM.CONFIGURATION 名前空間を使って、Questionnaire を使用する Web サービスの実行可能ファイルと同じディレクトリにある .config ファイル (projectname.exe.config または web.config) から構成情報を取得することにしました。 このファイルの内容は、次のようになっています。<configuration>
ソース コード内でのリテラル (ハードコーディングされた文字列) の使用は許容されています。 たとえば、SQL XPath クエリの作成にリテラル文字列を使用すると、保守がしやすくなり読みやすさも向上します (実用的な議論) 。 複数回にわたって使用されるエラー説明やリテラル文字列は、定数になっています。
Questionnaire のビジネス ロジックをカプセル化するために、Facade デザイン パターンを適用しています。
この Facade は、ビジネス コンポーネントやパートナー Web サイトがインターネット経由で使用するだけでなく、ローカルでアクセスすることもできます。 ローカルで使用する場合、SOAP インターフェイス (Web サービス) を通じてインターネット経由でアクセスするより直接コンポーネントを呼び出す方が常に高速であるため、パフォーマンス上の利点があります。 Facade デザイン パターンは、構造に関するパターンの 1 つです。 構造に関するパターンは、クラスやオブジェクトを組み合わせてより大きな構造を形成するための方法を扱います。 Facade デザイン パターンは、複雑なサブシステムの一連のインターフェイスに対する、統一されたシンプルなインターフェイスを提供します。
データセットは、背後でデータを XML ドキュメントに格納します。 上のコードを記述すると、テーブルを階層状に接続する XML ドキュメントが作成されます。
関数のオーバーロードとコンストラクタは、Microsoft® Visual Basic® .NET の新しい機能です。 関数をオーバーロードすると、名前が同じでパラメータと動作が異なる複数の関数をソース コードで使用できます。 コンストラクタは、パラメータとして渡された値でクラスをインスタンス化します。
コンストラクタも関数の 1 つであるため、オーバーロードすることができます。その際には、overloads キーワードを使用する必要はありません。 以下に例を示します。Public Sub New()
共通言語ランタイム (CLR) は、共有メンバをサポートしています。 共有メンバとは、所属するクラスのインスタンスを作成しなくてもアクセスできる関数です。 Visual Basic .NET では、共有メンバはモジュールレベルの関数に似ています。モジュール レベルの関数は、インスタンスを作成する必要なくアプリケーション全体で使用できます。
データベースへのラウンドトリップを避けるために、特定のユーザーの回答を格納するテーブルの XSD スキーマが自動的に生成され、ファイルとして格納されます。 このファイルがある場合は、データベースへのラウンドトリップは必要ありません。代わりにこのファイルが使用されます。 便利な File オブジェクトと Stream オブジェクトを使った例を以下に示します。Dim DataFile As File
Visual Studio® .NET では、さまざまな種類のプロジェクトを選択できます。 Visual Basic 分散アプリケーション プロジェクトを選択すると、複数のソース コード フレームワーク プロジェクトが n 層形式で生成されます。 今回は、生成される WebFacade と BusinessFacade を 1

[ 66] Questionnaire Web サービス
[引用サイト]  http://www.microsoft.com/japan/msdn/net/bda/jgl_questws.aspx

アンケートや世論調査の結果をピックアップしてデータベース化。変化する日本や世界の今はどうなのか。折角まとめられたアンケートやリサーチ結果、ランキングを、参考資料やヒント、雑談に。
VSistの 「週刊少年ジャンプで好きだったマンガは」によると ・07年10月20日〜11月19日 ・46815票 ・選択肢49作品☆週刊少年ジャンプで好きだったマンガ、トップ101位 ジョジョの奇妙な冒険、4735票2位 DRAGON BALL、3591票3位 SLAM DUNK、3425票4位 HUNTER×HUNTER5位 ワンピース6位 BLEACH7位 北斗の拳8位 幽☆遊☆白書9位 銀魂10位 シティーハンター 13位 デスノート14位 るろうに剣心15位 こち亀16位 キン肉マン18位 キャプテン翼20位 Dr.スランプ21位 キャッツ・アイ37位 ストップ!!ひばりくん!41位 ハレンチ学園43位 ど根性ガエル48位 サーキットの狼★下位は懐かし系だけ載せましたけど、 管理人は、DRAGON BALL、Dr.スランプに、 ストップ!!ひばりくん!が好きと、超古!
新潟県の「首都圏成人の住んでみたい道府県調査」によると、 ・東京・神奈川・千葉・埼玉の 20〜69歳男女1240人 ・インターネット調査 ・8月20〜23日☆住んでみたい県1位 沖縄2位 北海道3位 京都4位 静岡5位 長野27位 新潟県、3.9%(前年20位3.5%) ※7月16日中越沖地震の影響あり。☆選択の理由1位 海や山、川の自然環境2位 温泉やスキー場などの観光資源3位 安全・安心でおいしい食べ物★沖縄は住みやすそうですね。 収入のめどか、預金があれば行けます。
厚労省の 「第6回21世紀出生児縦断調査」によると ・2001年1月と7月に生まれた子供対象 調査票を毎年継続送付。 ・今回は子供が5歳半になった時点で保護者が回答 ・回答38535人(男児20013、女児18522)☆よく遊ぶ場所・自宅 95.1%・児童館や児童公園などの公共の遊び場 15.1%、ときどき遊ぶ63.6%☆遊ばない場所・空き地や路地 59.3%・原っぱ、林、海岸などの自然の場所 40.8%★空き地や原っぱはもう「三丁目の夕日」にしかないようです。 シクシク。☆よく遊ぶ相手・きょうだい 73.1%・同い年の子 50.8%・大人(親、祖父母等) 50.5%☆友だちとの関係で気にかかること(複数回答)・近所に友だちがいない 34.4%☆コンピュータゲームを・する 50.6%、前回から22.7ポイント増☆習い事・している 56.6%(前回は35.8%)《男児》(複数回答)ピアノなど音楽 24.9%水泳 18.3%英語 14.1%その他 9.2%体操 9.8%《女児》(複数回答)水泳 23.0%その他 16.0%英語 11.7%体操 11.1%☆手伝い(複数回答)《男児》・食卓に食器を並べる、片づける 69.2%・買い物の荷物を持つ 47.1%・掃除 35.7%《女児》・食卓に食器を並べる、片づける 79.4%・洗たく物をたたむ 55.6%・買い物の荷物を持つ 47.5%《弟妹がいる場合》・弟や妹の面倒をみる 83.4%☆母の就業状況・就業の有無 51.4% ※出産1年前54.5%から、出産半年後25.1%に減少 その後年々増加・パート・アルバイト 25.8% 第1回調査出産半年後3.7%から年々増加・常勤 16.5% 第1回調査出産半年後以降の変化は少ない。 出産1年前に常勤母で、常勤を続けているの30.9% 出産1年前に常勤母で、出産半年後に無職の48.8%★外は危ないけど、 友達と家でゲーム機というのもなあ。 地域の高齢者が管理し、学校の放課後を開放するか。
厚労省の 「障害者の雇用状況について」によると ・平成19年6月1日現在☆障害者の雇用状況56人以上民間企業(法定雇用率1.8%) 雇用数 30万2716人、6.7%1.9万人増 身体障害者25万1165人、知的障害者4万7818人、精神障害者3733人 実雇用率 1.55%(前年1.52%) 法定雇用率達成企業の割合 43.8%(前年43.4%)☆企業規模別・障害者の実雇用率・1000人以上規模企業 1.74%・500〜999人規模企業 1.57%・300〜499人規模企業 1.49%・56〜99人規模企業 1.43%・100〜299人規模企業 1.30%☆国の機関(法定雇用率2.1%) ・在職障害者数 6542人 ・実雇用率 2.17%☆都道府県の機関(法定雇用率2.1%) ・在職障害者数 8094人 ・実雇用率 2.42%☆市町村の機関(法定雇用率2.1%) ・在職障害者数 22112人 ・実雇用率 2.28%☆都道府県等の教育委員会(法定雇用率2.0%) ・在籍障害者数 10067人 ・実雇用率 1.55% ※都道府県は47中、達成2 市町村は106中、達成85★役所はかなりクリアしていていますが、 45都道府県の教育委員会が未達成、つまり違法とは。 小企業の現場は人員削減で余裕がない。 役所や大企業が多数雇用しないと。
MMD研究所の 「第4回携帯コンテンツに関する利用動向調査」によると ・11月9〜11月12日 ・5497人有効回答、男30%女70% 10代40%、20代23%、30代22% 40代15%☆おサイフケータイを利用したこと ・ある 15.4% ・持っているが利用したことがない 57.3% ・携帯が対応していない 27.3%★安全性がどうもねえ。☆携帯のミュージックプレイヤーを利用したこと ・ある 61.2% ・持っているが利用したことがない 26.8% ・携帯が対応していない 12.0%☆デコメを送ったこと ・ある 63.8% ・持っているが利用したことがない 26.6% ・携帯が対応していない 9.6%★デコメールも一般化☆携帯で電子コミックを読んだこと ・ある 69.7% ・持っているが利用したことがない 26.3% ・携帯が対応していない 4.0%★高齢者は目が疲れそうだけど。☆ワンセグを利用したこと ・ある 30.7% ・持っているが利用したことがない 7.8% ・携帯が対応していない 61.5% ☆どれくらいの頻度で利用しますか(利用者) ・1日1回 13.0% ・3日に1回 15.3% ・1週間1回 26.4% ・半月1回 16.0% ・1ヶ月1回 13.1% ・3ヶ月1回 16.2%☆ここ1ヶ月で、QRコードから携帯サイトにアクセス ・した 60.1% ・持っているが利用したことがない 32.9% ・携帯が対応していない 7.0%★QRコードはかなり浸透☆女性・この1ヶ月に利用したサービス1位 検索サイト 60.1%2位 天気予報 59.8%3位 ニュース 58.8%4位 アプリゲーム 46.3%5位 懸賞 45.4%6位 待受け 43.1%7位 着うた 41.9%8位 交通情報・乗り換え案内 41.6%9位 掲示板 38.3%10位 着うたフル 36.9%11位 占い 34.5%12位 着メロ 34.3%13位 デコメ 30.7%14位 ブログ 27.5%15位 SNS 25.7%16位 オークション 23.2%17位 オンラインゲーム 21.6%18位 電子書籍(マンガ) 19.8%19位 商品などのキャンペーンサイト 19.1%20位 総合ショッピング 18.9%・クーポン・チケット 18.1%・動画共有サービス 17.9%・グルメ情報 14.6%・電子書籍(小説) 9.1%・ファッション 8.1%・アクセサリー 6.5%・コスメ 2.8%☆男性・この1ヶ月に利用したサービス1位 検索サイト 64.3%2位 待受け 58.1%3位 着うた 54.0%4位 ブログ 53.7%5位 掲示板 50.8%6位 アプリゲーム 50.5%7位 着うたフル 50.0%8位 ホームページ作成サービス 48.1%9位 デコメ 44.5%10位 天気予報 42.0%・ニュース 39.1%・電子書籍(マンガ) 34.2%・交通情報・乗り換え案内 33.4%・電子書籍(小説) 25.7%・総合ショッピング 19.8%・動画共有サービス 18.8%・オークション 18.4%・クーポン・チケット 17.0%★携帯は手軽で高価な遊び道具となり、 ショッピングはまだ少数派。
週刊少年ジャンプで好きだったマンガ (11/28)首都圏成人の住んでみたい道府県調査 (11/28)21世紀出生児縦断調査 (11/28)75歳以上人口 (11/28)障害者の雇用状況 (11/28)携帯コンテンツに関する利用動向調査 (11/28)ギャル曽根の全国47都道府県レトルトカレー、ランキンの楽園 (11/24)いい夫婦、パートナー・オブ・ザ・イヤー2007 (11/23)温室効果ガス排出量、2005年経済先進国40カ国 (11/22)あなたの好きな麺類は (11/22)関西女性の調味料・ハーブアンケート (11/22)女性芸能人の抱かれたい芸人 (11/21)
本ナビ!by Tamecom:マイティ・ハート (11/26)ブログ検索結果BLOG: モツ鍋 (11/03)メタボリック・シンドロームにならないために:アメリカで最も多い詐欺、「ダイエット」 (11/01)みかの記録:ピーター・リンチの株で勝つ―アマの知恵で (10/30)購入前の豆知識: (10/26)
言葉の応援団(元気の出る言葉)世界の人口(子供向け社会科サイト)店長ガイド(店長さんの仕事のヒント)

[ 67] 最新、アンケートによると
[引用サイト]  http://questionnaire.blog16.fc2.com/



お気に入り



  • track feed
    • seo