Создание веб-приложения, сочетающего в себе проектирование и создание баз данных, работу со сторонними форматами данных, программирование в NET и веб-разработку, страница 2

Отсюда несложно сделать вывод, что полноценный симулятор должен сочетать в себе все необходимые аспекты, такие как взаимодействие различных модулей сайта, грамотно организованная база данных, минимизация административного ресурса и красивый, удобный и качественный интерфейс.

В данном проекте целью является проектирование всех модулей данного симулятора, их структурное и логическое описание.

Для достижения данной цели необходимо:

•  Проанализировать подобные симуляторы, выявить их преимущества и недостатки и выстроить модель данного симулятора.

•  Необходимо разработать дружелюбный пользовательский интерфейс.

•  Спроектировать структуру базы данных, позволяющую хранить информацию и легко ей распоряжаться. Для этого необходимо изучить особенности СУБД MySQL и средства веб-программирования для работы с данной СУБД.

•  Спроектировать серверный модуль, реализующий диалог с пользователями и работу с базой данных.


1  Хранение данных

Возможно самым важным аспектом киберхоккейной лиги, претендующей на долгое и успешное существование и преемственность, является хранение данных. Пользователям, при участии в турнирах, очень важно знать различные статистические показатели. Многие желают иметь возможность просматривать, сравнивать и анализировать показатели разных игроков. Также пользователям необходимо видеть результаты своей игры по окончанию турнира или в ходе нескольких турниров, которые выливаются в различные награды и призы.

Для обеспечения этих целей необходимо хранить данные, накопленными в ходе деятельности Лиги и свободно распоряжаться ими. Для реализации данной задачи мной была выбрана СУБД MySQL 5 версии. Основанием для такого выбора послужила доступность данной СУБД, а так же наличие необходимых технических возможностей данной системы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей[1]. В данной работе я предпочел выбрать тип InnoDB. Несмотря на то, что возможности данного вида таблиц по количеству столбцов ограничены (порядка 409 столбцов), они значительно превосходят потребности в рамках данного проекта (до 30 столбцов). Плюсом данного вида таблиц является то, что одна таблица может храниться в нескольких файлах, представляя одно табличное пространство, что позволяет занимать практически неограниченное пространство на диске (до 64 ТБ).

1.1  Данные

Как уже было описано выше, матчи между участниками проходят на базе игры от EA Games NHL09. Ввиду отсутствия специализированной программы от разработчиков для сбора лога игры, группой энтузиастов была написана программа NHL09GamePlayCenter, представленная на рис.1.1.

Рисунок 1.1 – интерфейс NHL09GamePlayCenter.

Данная программа осуществляет сбор данных о матче, сыгранном между соперниками. Программа запускается параллельно с компьютерной игрой и по завершению матча сохраняет 4 файла: Лог игры, статистику игры, статистику команд и статистику игроков. Предоставляется выбор форматов сохранения файлов со статистикой, таких как CSV, XLS и HTML (Рис.1.2). Так же возможно сохранение сразу в нескольких форматах.

Рисунок 1.2 – Выбор форматов сохранения файлов.

Наиболее удобным для обработки программными средствами является формат CSV, так как не требует использования сторонних библиотек и является наиболее простым в работе с ним. Стоит рассказать об этом формате немного подробнее.

1.1.1  Формат данных CSV

CSV (от англ. Comma-Separated Values — значения, разделённые запятыми) — текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных колонок разделяются разделительным символом (delimiter) —запятой(,).[2]

CSV файл состоит из двух типов данных: полезных данных и маркеров. Полезные данные это то, что записывается в приложении производителя и считывается в приложении потребителя. Маркеры используются для организации полезных данных внутри файл CSV.