
自分のサイト用にアクセス解析を自前で作りたいと思っています。
javascriptで解析してAjaxで送信し、サーバー側のphpで受け取ってMySQLに溜め込むことを想定しています。
ですがアクセス解析用のデータベースの設計がわかりません。
MySQL自体は使えますが、テーブルや正規化などの設計について知りたいのです。
ネットで検索してみていますがなかなか良い情報がなく、お勧めの書籍やサイトがあればお教え頂きたいと思います。
どうぞよろしくお願い致します。

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
Q&A
3回答
4756閲覧
退会済みユーザー
総合スコア0
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
0グッド
1クリップ
投稿2015/04/19 02:21
自分のサイト用にアクセス解析を自前で作りたいと思っています。
javascriptで解析してAjaxで送信し、サーバー側のphpで受け取ってMySQLに溜め込むことを想定しています。
ですがアクセス解析用のデータベースの設計がわかりません。
MySQL自体は使えますが、テーブルや正規化などの設計について知りたいのです。
ネットで検索してみていますがなかなか良い情報がなく、お勧めの書籍やサイトがあればお教え頂きたいと思います。
どうぞよろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
MySQLの事例ですと、MyISAMを使用して集計単位(日毎や月毎)でパーティーショニングして設計/運用しています。
パーティションの追加や削除については、比較的アクセスが少ない時間帯(国内のサービスであれば深夜など)にcronで1ヵ月分や1年分を纏めて作成/削除しています。
テーブル設計については、基本的にkodaiさんの仰るようなアクセス解析用のテーブルのみで賄っていますが、あまりにもレコード数が多い場合には別途集計用のテーブルを作成して、これもcronで集計しています。
投稿2015/04/19 12:19
総合スコア736
0
最初はkodaiさんの提示されたテーブル1個でも十分じゃないかと思います。
運用しているうち追加の情報が欲しくなってくると思うので都度カラムを追加してゆくと。
PVやUUや滞在時間の計算が重くなってきたら集計用のテーブルを追加してバッチ処理をする必要が出てくるかも知れませんね。
投稿2015/04/19 04:13
総合スコア1293
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/19 05:35
0
アクセス毎のデータを記録すれば、週次、月次、年次など自由に集計できるので
とりあえずこのテーブルから初めて、自分が欲しい情報を追加していけばいいのではないでしょうか。
create table access_logs ( id bigint auto_increment primary key, date datetime not null, path text not null, -- Request path ua text, -- User-Agent ipaddr text -- Remote IP address ); create index access_logs_date on access_logs (date);
投稿2015/04/19 02:30
総合スコア759
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/19 02:40
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/19 12:43