タグ付けされた質問 「database」

このタグは、一般的なデータベースの質問用です。SQLに固有の質問の場合は、代わりにそのタグを使用してください。

4
DALレイヤーとBLLレイヤー間でのデータとビジネスオブジェクトの取得の分離
この質問を投稿する前に、いくつか調査を行いました。他の質問や投稿の中で、そのうちの1つを以下に示します。どのように判断するか明確な心がつかめなかった。 データアクセス層内のビジネスオブジェクト リポジトリがあり、ビジネスレイヤーはリポジトリを呼び出してデータを取得します。たとえば、BLLとDALの次のクラスがあるとします。 class BllCustomer { public int CustomerId {get; set;} public String Name {get; set;} public BllAddress Address {get; set;} } class BllAddress { public int AddressId {get; set;} public String Street {get; set;} public String City {get; set;} public String ZipCode {get; set; } } class DalCustomer { …

6
私の場合、MongoDBは正しい選択ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 6年前休業。 3つの主要な部分で構成されるWebアプリで構成される、Railsで最初の実際のプロジェクトを構築します。 データベースを使用しない静的部分 各ユーザーの行は同じフィールドを持つため、データベースを必要とし、MySQLを使用できるユーザー登録部分 ユーザーがコレクション内のアイテムを作成、整理、編集し、他のユーザーと共有できる「アプリ」 いくつかのアイテムタイプがあり、それぞれに異なるオプションがあります。たとえば、次のオプションを持つ「ビデオ」アイテムがあるとします。 id ユーザーID collection_id 題名 プラットフォーム(埋め込まれている場合) URL(埋め込まれている場合) ファイル名(アプリでホストされている場合) ファイルサイズ(アプリでホストされているID) 「マップ」アイテム: id ユーザーID collection_id 題名 プラットフォーム(Googleマップ、Bingマップ...) ロケーション url 地図のサイズ ユーザーがMySQLをアイテムに使用している間、各アイテムが別のアイテムとは異なるオプションを必要とする可能性があるため、MongoDBの柔軟性が役立つ場合があります。 これまで私は常にPHPとMySQLを使用してきました(常に小規模なプロジェクトでは共有ホスティングを使用しています)。スケーラビリティは私にとってまったく新しい言葉です。 学ぶ時間はありますが、1か月くらいで具体的なことができるようになりたいです。 私はMongoDBとNoSQLとRDMSとMySQLについてたくさん読んだので、それを試した後、MongoDBがどのように機能するかが好きだと言っておく必要があります。 私の状況では何をしますか?どうして? スケーラビリティについて、MongoDBに問題がある可能性はありますか?はいの場合(DBサイズに関して)、これらの問題によりアプリが大幅に遅くなる可能性がありますか? 編集:アプリの仕組み 多くの人がこれを私がアプリをどのように機能させたいかを尋ねたので: ユーザーがサインアップ 彼はログインしています 彼は無限のアイテムを作成できる彼の最初のコレクションisideを作成します アイテムにはさまざまなタイプがあり、タイプごとに異なるデータをデータベースに保存する必要があり、アイテムのタイプを追加または変更できます ユーザーはその中に他のコレクションやアイテムを作成できます。 そのため、コレクションとその内部のアイテムのCRUDがあり、各コレクション/アイテムは特定のユーザーに参照されます MySQLの主な問題は、柔軟なスキーマがないことです。これを解決する方法があります(回避策?)? NoSQLについて考えるときの唯一の疑問は、結合に関するものです。たとえば、特定のコレクションがあり、コレクション内のID = user_idフィールドを持つユーザーに関連するデータを取得したい場合 編集:MySQLを使い続けるためのアイデア 「items」テーブルに、オプション設定を含むフィールドを作成します。各設定は|で区切られます。または別のシンボル。 次に、各アイテムのオプション設定の構造をどこかに保存します。たとえば、「ノート」アイテムタイプには、MySQLからデータを取得するときに、2つのオプション設定「color」と「strange_setting」が必要です。オプション設定のフィールドを配列の最初の項目が「色」用であることを認識する配列など。 どう思いますか?その解決策に問題がありますか?他にアイデアはありますか?

8
新しい機能を処理するためのデータベースのリファクタリングまたはアップグレード
データベーススキーマの質問に対するいくつかの回答は、現在の要件の一部ではない機能のデータベースを正規化するための追加のテーブルを提案しました(UserDepartmentテーブルは、従業員/ユーザーとそれらが異なる部門との多対多の関係を可能にします属します。) 正規化に反対ではありません。データベースの設計に関しては、誰かが将来的に望んでいると確信している機能を含めるように強く求められているようです。テーブル/フィールドをデータベースに追加して機能に対応することは、過度に設計する傾向があるので難しいですか?必要に応じて、他のアプリと同じようにリファクタリングまたはアップグレードされませんか?やり直しは決して楽しいものではありませんが、データをあるテーブルから新しいテーブルに移動することはできます。この考え方がどこで終わるのかわからない。 編集:これには多くの嫌悪感があります。データベースの大幅な変更を必要とする機能を追加しないプロジェクトや、新しいテーブルの代わりにDepartmentID2フィールドを追加するなどの非正規化されたアプローチがいくつあるのでしょうか?従業員が複数の部署を必要とすることは、よくあるドメインの問題です。多対多の関係で散らかされている多くのデータベーススキーマに気づかなかっただけです。

3
DB変更管理の処理にはどのような方法がありますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 私は最近、サブバージョンを使用して、私のWeb開発でバージョン管理の作業を始めました。これは、開発したファイルの管理には最適ですが、データベースに加える必要がある変更には何もしません。私の知る限り、私が取り組んでいるサーバーにはDB管理システムがなく、おそらく何もインストールすることができません。この種の環境でDBを管理するには、どのようなオプションがありますか?


3
絶えず変化するデータベースディメンションをどのように処理しますか?
過去2か月ほどの間、データベース内のリリース管理を処理するためのソリューションまたはプラクティスを探していました。これを処理するための最良のプロセスとして人々が見ているものを探しています。 データベースには3つの環境があります。 開発 ユーザー受け入れテスト(UAT) 製造 問題は、開発データベース内のいくつかのものに変更を加えて展開するときが来ていることです。一部の機能はUATにリリースする準備ができていない可能性があります。 最近、すべてのエンティティを(通常のコミットで)格納するためにRed Gate SQLソースコントロールを使用し始めました。 私はチェンジセットに基づいて行くことを考えていました(つまり、チェンジセットXからすべてがUATにプッシュされていると言います)、つまり、混乱を招く可能性のあるデプロイを行う直前に、人々がコードをソース管理にチェックインしているだけです(特に人々は忘れっぽいからです)。変更セットのアプローチに伴うもう1つの問題は、修正が必要なストアドプロシージャにバグがある場合、変更セット番号は最終的にリビジョンの最大変更セットの範囲外になるため、必要に応じて最大のチェンジセットからデータベースを再作成します。バグを再度プッシュします。 プロセスに関する提案はありますか? ありがとう

8
超高速データベースで10億行をスキャン
バックグラウンド ローカルデータベースには、約13億の一意の行が含まれています。各行は、特定の緯度と経度(場所)に間接的に関連付けられています。各行には日付スタンプがあります。 使用事例 問題は次のとおりです。 ユーザーは、開始/終了日と値の範囲(たとえば、100から105)を設定します。 システムは、特定の日付に一致するすべての行を、場所ごとにグループ化して収集します。 システムは、これらの日付の間に、指定された値の範囲に該当する可能性がある場所を決定します。 システムは、一致するすべての場所をユーザーに表示します。 これは速度と規模の問題です。 質問 そのようなシステムが5秒未満でユーザーの結果を取得できると想像できる最も安価なソリューションアーキテクチャは何ですか。 現在のシステム 現在の環境は次のとおりです。 PostgreSQL 8.4(アップグレードは可能です。データベースの切り替えはオプションではありません) RおよびPL / R XFS WD VelociRaptor 8 GB RAM(Corsair G.Skill; 1.3 GHz) クアッドコア本物のインテル7(2.8 GHz) Ubuntu 10.10 ハードウェアのアップグレードは許容されます。 更新-データベース構造 数十億行が次のようなテーブルにあります。 id | taken | location_id | category | value1 | value2 | value3 id-主キー 取られた-行に割り当てられた日付 location_id-緯度/経度への参照 …

3
オープンソースプロジェクトリリースでデータベーススキーマの変更を管理する方法
いくつかの幼稚園から高校まで、一部の大学で使用されているオープンソースのPHP / MySQL Webアプリケーションを管理しています。私はプロジェクトの唯一の開発者でもあります。以前は、雇用主がホストするアプリケーションのソースダウンロードに過ぎませんでしたが、昨年、ドキュメント、番号付きリリース、公開変更ログなどを含む「本物の」オープンソースプロジェクトにするために取り組んできました。 アップグレードプロセスの改善を目指しています。特にITの専門家が不足している学校にとって、痛みを伴う可能性のある分野の1つは、リリース間でのデータベーススキーマの変更です。それらは頻繁に発生したり、大幅な変更になる傾向はありませんが、プロセスに関する提案をいただければ幸いです。 現在、データベースを新規インストールでセットアップするためのベースSQLインストールスクリプトを維持しています。これには、現在のリリースの完全なスキーマが含まれます。新規インストールの場合、これ以上のアクションは必要ありません。リリース間で発生する変更はupgrade-$releasever.sqlスクリプトに保存されます。スキップされたリリースについては、すべてのアップグレードスクリプトを段階的に実行する必要があります。 ユーザーの多くはシェルアクセスなしでホストを操作するため、シェルスクリプトは適していません。他の優先事項により、複雑なPHPブラウザーベースのインストーラー/アップグレードスクリプトが実現する可能性は低いです。ただし、アップグレードを簡素化するために、ブラウザーベースのPHPスクリプトを使用して何かを実行したいと思います。それへのアプローチ方法に関する提案?

6
HSQLDBユニットテストはアンチパターンですか?
HSQLDBは素晴らしいです。また、組み込みモード(専用サーバーは不要)を備えているため、Proof of Conceptsなどの迅速なプロトタイピングが可能になり、さまざまなデータをすばやく簡単に保存できるため、本番環境ですぐに使用できるアプリケーションにも最適です。 ただし、私が過去数年取り組んできたプロジェクトの少なくとも90%は、SQLデータベースを何らかの方法で処理する場合、組み込みHSQLDBを使用するユニットテストを避けられません。 確かに、これらのプロジェクト(ほとんどの場合、標準のMaven構造を使用します)には、大量の「単体テスト」(または少なくとも、ある種のテストがありますが、「単体テスト」領域にあります)があります。いくつかのCRUD操作を実行して結果を確認するために、HSQLDBの1つ以上の埋め込みインスタンスを使用するプロジェクト(「src / test / java」など)の)。 私の質問は、これはアンチパターンですか?HSQLDBは​​簡単に統合でき、組み込みサーバーは非常に軽量であるため、実際のデータベースの「モックアップ」として見過ごされがちですが、そうでない場合はどうでしょうか。(それらのそれぞれは、「何か」で構成されているので、このようなテストは、より統合テストのように扱われるべきではないと、データベース・サーバーとの「何か」の統合という)?または、「単体テスト」定義に何か欠けているのでしょうか。このようにHSQLDBを使用すると、「単体テスト」定義の「依存関係を模擬し、単体のみをテストする」部分に固執すると言えます。

9
別の言語を使用してdbに間接的にアクセスしているだけで、SQL内のデータ構造とオブジェクトの種類を学習する必要はありませんか?
データベースへのアクセスにjavaまたはpythonを使用しているとします。それでは、時間の浪費と見なされ、SQL内で使用されているデータ構造とオブジェクトの種類を学習する必要はありませんか? ソフトウェア業界についてお答えください。どのような場合にそのようなことを知っておくとよいかを教えてください。 私はそのようなことを学ぶ必要はないと言っている誰かとの議論があります。
8 database  sql 

5
DBのパフォーマンスを考慮して複雑なREST APIを設計するにはどうすればよいですか?
REST APIの設計方法に関するいくつかのチュートリアルに従ってきましたが、まだいくつかの大きな疑問符があります。これらのチュートリアルはすべて、比較的単純な階層のリソースを示しています。これらのチュートリアルで使用されている原則が、より複雑な階層にどのように適用されるかを知りたいのです。さらに、彼らは非常に高い/建築レベルにとどまります。永続層は言うまでもなく、関連するコードはほとんど表示されません。Gavin Kingが言ったように、私は特にデータベースのロード/パフォーマンスについて心配しています: 開発のすべての段階でデータベースに注意を払えば、労力を節約できます アプリケーションがのトレーニングを提供するとしますCompanies。Companies持っDepartmentsていOfficesます。Departments持っていEmployeesます。Employees持っているSkillsとCoursesし、特定のLevel特定のスキルのは、いくつかのコースのために署名することができるように要求されています。階層は次のとおりですが、 -Companies -Departments -Employees -PersonalInformation -Address -Skills (quasi-static data) -Levels (quasi-static data) -Courses -Address -Offices -Address パスは次のようになります。 companies/1/departments/1/employees/1/courses/1 companies/1/offices/1/employees/1/courses/1 リソースを取得する したがって、会社を返すときに、階層全体を返すことはできませんcompanies/1/departments/1/employees/1/courses/1+ companies/1/offices/../。部門または展開された部門へのリンクのリストを返す可能性があり、このレベルでも同じ決定を行う必要があります。部門の従業員または展開された従業員へのリンクのリストを返しますか?それは部門や従業員などの数に依存します。 質問1:私の考えは正しいですか。「階層をどこで切るか」は、私がしなければならない典型的なエンジニアリング上の決定ですか ここで、尋ねられたときGET companies/idに、部署のコレクションへのリンクのリストと展開されたオフィス情報を返すことにします。私の会社には多くのオフィスがないので、テーブルOfficesと一緒に参加するAddressesことは大したことではありません。応答の例: GET /companies/1 200 OK { "_links":{ "self" : { "href":"http://trainingprovider.com:8080/companies/1" }, "offices": [ { "href": "http://trainingprovider.com:8080/companies/1/offices/1"}, { "href": "http://trainingprovider.com:8080/companies/1/offices/2"}, { "href": …

2
ORMで複雑な計算フィールドを処理する方法
私たちのAPIには、計算された値を持つデータベースから取得した後に(いわば)「装飾」する必要があるいくつかの中心的なデータ型があります。データベースは、CakePHP 3データベースレイヤーから大きく影響を受けたテーブル/エンティティダイナミックに従うORMを介してアクセスされます。テーブルオブジェクトは、データベースと、モデルオブジェクトインスタンスとして行を取り込んで渡すアプリケーションとの間の仲介として使用されます。したがって、データベースからデータを取得してそれらの行を返すだけでなく、返されたデータを実際に使用する前に前処理する必要があります。ここに私が何を意味するかをよりよく説明するために出てきたいくつかのユースケースがあります: オブジェクトには数値があり、ユーザーフレンドリーなラベルに変換されます(通常、これは純粋にクライアントに保持するロジックですが、ビジネスセキュリティ上の理由から、このデータの一部はサーバーにのみ保持する必要があります。エッジケース) オブジェクトには、最後に追加された評価から取得された関連する評価値が必要です このような計算値と保存された値の組み合わせに基づいて、複雑なスケジュールオブジェクトが構築されます 単独では、これらのいずれもmap()、返された結果セットに対する単純な操作で実際にかなり簡単に実行できます。同じことが複数の計算値が必要な場合にも当てはまります。必要に応じて、より多くのマップ操作を実行して、それらのフィールドを計算および追加できます。 とはいえ、このアプローチには2つの大きな欠点があります。 これは、これらの計算された値を操作するすべての場所で後処理の追加の手順を実行する必要があることを意味します。これは特にDRYではありません。 これらの変換の一部は、最初に実行される他の変換に依存しています。それ以外の場合は、操作できるデータがありません。 両方を処理するために、このコードをORMに移動し、ORMを変更して、インターフェイスが(外部で)データベース列を処理するのと同じ方法で計算された仮想フィールドにアクセスできるようにするのが最善のアプローチであると考えていました。内部的には、これらの仮想フィールドを変換関数にマップし、潜在的に必要な依存関係変換を内部的に決定して、2番目の問題を解決することができます。 (余談ですが、これにより、単純なハッシュではなく、返された行が実際のオブジェクトである必要がなくなるかどうか疑問に思っています。現在、各行は、フィールドデータセットが設定された新しいオブジェクトをインスタンス化しますが、すべての計算またはデータの変更はモデルの外に移動され、オブジェクトはプロパティのバッグになります-本質的に、それ自体の内部ロジックを持たないハッシュマップです。これは実際には悪いことではないかもしれません)

1
セロリでAPIを呼び出す
要件が次のようなクライアント向けのシステムを設計しています。 彼らはJSONファイルをアップロードします(1つのオブジェクト/行) JSONオブジェクトをペイロードとしてAPIを呼び出す 各API呼び出しの状態(成功/失敗)をデータベースに記録する 失敗した場合は、1回再試行します。 セロリとsqliteデータベースをバックエンドとして使用して構築することにしました。JSONの行の数は多くなく、メモリに収まる可能性があります。個々のコンポーネントはすべて正常に動作していますが(ファイルのアップロード、ファイルの読み取り、APIの呼び出し、dbへの書き込みなど)、セロリを使用したタスクのディスパッチの全体的なアーキテクチャについてはわかりません。 ファイルにN行あるとすると、次のようになります。 オプションA: result列(最初はnull)を持つデータベースにN個のオブジェクトを作成します。 N個のセロリタスクを作成し、オブジェクトIDをパラメーターとペイロードとして渡します サブタスクにAPIを呼び出しさせ、オブジェクトの結果フィールドを成功/失敗に更新します。 失敗した場合にセロリの再試行機能がAPIを再度呼び出そうとするようにします。 オプションB: result列(最初はnull)を持つデータベースにN個のオブジェクトを作成します。 1つのセロリタスクを作成し、N個のオブジェクトIDとN個のペイロードのリスト全体を渡します N個のオブジェクトすべてをループして、各ステップの結果でデータベースを更新します。 前のタスクが完了すると、別の1回限りのセロリタスクが起動され、失敗した結果を持つすべてのオブジェクトのデータベースが読み取られて再試行されます。 オプションAは、その単純さのために優先していますが、スケジュールできるセロリタスクの数の制限と、ブローカー(RabbitMQ)がそれを処理するかどうかはわかりません。オプションBの場合、大きなリスクは、セロリタスクが何らかの理由で何らかの行Mで終了した場合、後続のすべてのオブジェクトが試行されることはないということです。 これらの2つについての考え、または3番目に優れた代替案があるかどうか。

5
2つのデータベースアーキテクチャ:運用と歴史
私は珍しいデータベース構造について考え、誰かが以前にそれを使用しているのを見たことがあるのではないかと思いました。基本的に2つのデータベースを使用しています。 最初のデータベースは、現在有効なデータのみを保持します 2番目のデータベースは、最初のデータベースで入力、更新、または削除されたすべての履歴を保持します シナリオ 私は、発生するすべてをログに記録する必要があり、データが頻繁に変更されるプロジェクトに取り組んでいます。 例(実際のものではない) サッカーリーグのデータベース設計を行う必要があります。このリーグには選手とチームがあります。プレイヤーはしばしばチームを切り替えます。 最初の要件:データベースは、次の試合をプレイするために必要な情報を保持する必要があります。これは、すべてのプレーヤー、チーム、および各プレーヤーが現在所属しているチームのリストを意味します。 2番目の要件:データベースは、統計の生成に使用する履歴値を保持する必要があります。これは、チームに所属していたすべてのプレーヤーのリスト、またはプレーヤーが参加していたすべてのチームのリストを意味します。 問題 これらの2つの要件は、互いに正反対です。同じデータベースですべてを実行しようとしましたが、意味がありません。最初の要件は「次の試合のプレー」のみを対象とし、2番目の要件は「統計の生成」のみを対象とします。 同じデータベースですべてを行うために、明らかなソフト削除を使用して情報を削除/更新する一種の「挿入のみ」のデータベースを使用しました... 最初は簡単な作業のように見えましたが、プレーヤー、チーム、および各プレーヤーの現在のチームのリストを保持することは、突然、かなり難しくなります。次の一致を再生するために必要なアプリケーションロジックはすでに十分に複雑ですが、データベースは非常に役に立たない設計になり、アプリケーションは次の一致を再生するためにすべてのクエリに「削除済み」チェックを追加する必要があります。 「チームのすべてのプレーヤーが私に来てください」と叫ぶコーチになりたいですか?それから2000人のプレーヤーがあなたのところに来ます。その時点で、おそらく、「このチームで削除されていないすべてのプレイヤーが私のところにやって来ます」と叫ぶでしょう(この愚かなデザインについては誓います)。 私の結論 なぜすべてを同じデータベースに入れる必要があるのか​​不思議に思いました。多くの列(time_created、who_created_it、time_deleted、who_deleted_it)を追加しない限り、ソフト削除はすべてをログに記録するのに不十分なだけでなく、すべてを複雑にします。データベースの設計が複雑になり、アプリケーションの設計も複雑になります。 また、これら2つの要件は、分割できない1つのアプリケーションの一部として受け取りますが、これは2つの完全に異なるアプリケーションであると考え続けています。なぜ一緒にすべてをしようとしているのですか? そのとき、データベースを2つに分割することを考えました。次の試合をプレイするためにのみ使用され、現在有効な情報のみが含まれる運用データベースと、作成、削除、および誰が行ったかについて、これまで存在していたすべての情報を保持する履歴データベース。 目標は、2番目のデータベース(履歴)にできるだけ多くの情報を保持しながら、最初のデータベース(運用)とアプリケーションをできるだけシンプルに保つことです。 ご質問 以前にそのデザインを見たことがありますか?名前はありますか? 私が見逃している明らかな落とし穴はありますか? 編集2015-03-16 現在のアーキテクチャ 基本的に、アーキテクチャ全体を2ステップのプロセスと考えることができます。 ステップ1 : アプリケーションが実行中で、ユーザーがいくつかのアクションを実行しています イベントが発生するたびに、イベントテーブルに自動的に記録されます(監査ソリューション)。 次に、運用データベースの正しい行が更新されます ステップ2 : ジョブがイベントテーブルの最新の挿入を読み取り、この新しいデータを履歴データベースに挿入します。 ユーザーは履歴データベースを照会して、必要な情報を取得します。 イベントテーブルから、いつでも情報を再構築できます。問題は、このイベントテーブルが簡単にクエリできないことです。これは、履歴データベースが機能する場所です。必要なものを正確に取得しやすい方法でデータを提示する。 すべてを同じテーブルに入れるときの追加の問題 各クエリで「削除されている」チェックの複雑さが増すことについては、すでに懸念を表明しています。しかし、別の問題があります:整合性。 外部キーと制約を多用して、データベースのデータがいつでも有効であることを確認しています。 例を見てみましょう: 制約:チームごとにゴールキーパーは1人だけです。 チームごとにゴールキーパーが1人だけかどうかをチェックする一意のインデックスを追加するのは簡単です。しかし、ゴールキーパーを変更するとどうなりますか。以前の1つについての情報を保持する必要がありますが、同じチームに2つのゴールキーパーがいます。1つはアクティブで、もう1つは非アクティブであり、制約と矛盾します。 確かに制約にチェックを追加するのは簡単ですが、管理および検討する必要があるもう1つのことです。

3
要求されたデータが多すぎる場合のHTTP要求に対する適切な応答
広告キャンペーンのトラッカーデータをリクエストできる広告配信プラットフォーム用のAPIを構築しています。多くの場合、キャンペーンは数億のリクエストを超えるため、テラバイトに相当するデータが大量に存在します。したがって、APIの利用者が一度に大量のデータをリクエストすること(リクエストがタイムアウトするなど)を防ぐ必要がありますが、それを行うためのベストプラクティスが何かはわかりません。 私がすでに特定したオプションは次のとおりです。 データのどのセクションが必要かを示す追加のパラメーターをリクエストに追加する データを切り捨て、どういうわけか、より具体的なフィルターを使用する必要があることをクライアントに伝えます HTTPステータスコード413で応答します(ただし、これは応答ではなく、大きなリクエスト本文のようです) ストリーミングAPIへの切り替え(TwitterのストリーミングAPIなど) しかし私の質問は、このような状況に対する標準的な実践/適切な対応は何ですか? 注:DoS攻撃はパブリックAPIではないため、それほど心配する必要はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.