HOME試合一覧国内大会国際大会代表大会統計情報女子大会TEAM サイト概要
サイト概要

ProfileExplainDesignContactUpdateMurmurGallery



ページ設計

このサイトの構成を簡単に説明します。

1.全体構成

 本ページの全体構成を以下に示します。

ソフトウェア構成
ソフトウェア構成
 当然のことながらWindows、IIS、ASP.NET、ADO.NET、NetFrameworkはMicrosoftの純正品です。

2.データベース構成

 本サイトのデータは、データベース(MySQL)上に格納されています。そのデータベース構成は以下の通りです。

データベース構成
データベース構成
データベース テーブル 内容説明
マスターDB 大会情報Tbl 本データベースの中核となるテーブルで、大会(J1リーグ、天皇杯等)の開催年単位で 大会方式を格納したテーブルである。
大会共通で延長有無、勝点の値さらにリーグ戦であれば、1シーズン、2シーズン制や トーナメント戦の場合の回戦数等が格納されている。
チームTbl チームIDとチーム名を格納したチーム名テーブル、過去のチーム名を格納した旧チーム名テーブルそして 開催年毎の所属カテゴリ(J1、関東地域1部等)を格納したチームランクテーブルから構成されます。
開催地Tbl 開催地IDと開催地名情報を格納した開催地名テーブル、過去の開催地名を格納した旧開催地名テーブルそして 開催地の大会別使用状況を格納した開催地使用状況テーブルから構成されます。
さらに開催地命名権テーブルや海外の開催地の時差テーブルがあります。
他に得点者名の変更リストや地域や都道府県2部以下のリーグのグループ名を 格納したテーブルが存在します。
ゲームDB 試合Tbl 各大会の試合日程、結果を格納している。
内容としては、大会種別、開催日、対戦チームID、前後半別得点、開催地ID等である。
得点Tbl 各試合の得点者を格納したテーブルである。
本データが存在するのは得点者を登録している一部の大会のデータのみである。
出場Tbl リーグ戦等では、チームの所属カテゴリに従った大会に出場するチーム一覧が決定するが、 カップ戦のようにカテゴリを越えて出場するチームが決定する場合、 本テーブルに出場チームの一覧を格納する。
他に編集を補助するテーブルがいくつか存在する。
補助DB XMLで作成された大会概要メッセージ、チームの詳細情報や、本データも 格納されている。
ほとんどのテーブルが存在しなくてもメッセージが表示されない等の事象になるだけで プログラムの動作に影響を与えていない。
カウンタDB 統計的な情報としてアクセス数等を格納している。
プログラムの動作には影響を与えていない。

3.アプリケーション構成

 アプリケーションは、ほぼすべてC#で作成されています。(一部ログ取得等でCで作成されている箇所もありますが、 実際の処理に影響を与えている部分はすべてC#です。)
アプリケーション構成
アプリケーション構成
プログラム名 内容説明
共通編集クラス NetFramework(C#)を使用する上での汎用的に作成したデータ変換、ログ収集等の機能をまとめた 静的クラス群です。
ADO.NET制御クラス ADO.NETの上位でデータベースアクセスを制御する汎用的に作成したクラスです。
本クラスでは、SQLサーバ、OLEDB、ODBCおよびMySQLの4種類のデータベースの制御を 共通インターフェースで制御するように作成しています。
マスタDBアクセスクラス 大会情報テーブルを参照し、その大会の対象チームおよび開催地を読み込んで、 参照可能状態にするクラスである。
ゲームDBアクセスクラス 大会情報テーブルを元に、対象となる試合データ、得点者データの読込みを行う クラスである。
個別部品編集クラス 大会のページ表示のための以下の個別コンポーネントの編集を行う処理群である。
・試合日程
・順位表
・トーナメント表
・出場チーム一覧 etc
大会編集ベージベース Webページのベースクラスを継承して、ページ編集の共通処理を組み込む。
主として、Config情報の読込みHTTP要求の参照機能を提供する。
大会コンポーネント 大会方式に基づく個別コンポーネント編集の集合である。
リーグ戦編集、カップ戦編集等のコンポーネントからなる。
大会Webページ 各大会表示のトップページである。
このページが大会毎に存在し、大会コンポーネントを組み込んで 各大会の予定・結果を表示する。

 全体のStep数は2015年12月の全面改訂前は、およそ100kStepありました。
 全面改訂後は、かなり共通化がうまくいって、半分ぐらいまで下がりましたが、 その後、かなり処理が追加され、現在では70kStepぐらいとなっています。
 また、それ以外にメンテナンス用のプログラムが、かなりの量存在します。

4.データ更新について

 Webサーバー上のプログラムは、カウンターDBを除いて参照アクセス権のみしか有しておりません。 また、データ更新用の隠しプログラムも存在しません。
 データ更新は、Webサーバーと同一の構成のマシンを別に用意して(そこにはデータ更新用のプログラムも搭載)、 そこでデータ更新を行っています。
 データ更新用サーバは、性能は落ちますが修正を容易とするため、データベースにMS-ACCESSを使用しています。
データ更新の流れ
 実際のデータ修正作業は手作業のためかなりの時間を要しますが、サーバへの反映に要する時間は100ms以下となっています。

5.地理情報について

 ここでは、国土交通省が提供する2つの地理情報を使用しています。
 ・位置情報参照サービス
 ・国土数値情報ダウンロードサービス

 ひとつめの位置情報参照サービスは、住所から緯度経度を算出するために使用しています。
 本データはデータベース化して登録しており、開催地等の位置情報を住所から算出するのに使用しています。
 ただ、わざわざ住所から緯度経度を算出するような面倒なことはせず、直接緯度経度を設定 (実際、海外の開催地は緯度経度を直接設定している)すればいいことで単に余計なことをしているだけである。
 ふたつめの国土数値情報ダウンロードサービスは、行政区域情報を使用しています。
 行政区域情報は、全市区町村の境界値データです。このデータをMySQLのgeometry型でデータベース化しています。 このデータは元々、仕事で使用するために準備したのですが、今のところ仕事で使用する予定がないので、動作検証も兼ねて、 ホームタウンの領域表示に使用しています。

 以上、本サイトのソフトウェアの構成を簡単に説明しました。なんらかの参考になりましたでしょうか?
実際のところ、ADO.NET制御クラスやベースページの部分は汎用的に作成しているので、実作業でも流用して使用しています。
ということでさらに詳細を知りたい方はご連絡を..と言いたいところですが、 現状、本サイトの設計に関する資料が何もないため、情報の提供は難しい状況にあります。


>ページの先頭へ