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

•  user – Указывает юзера, для которого записан рейтинг. Вместе с полями season и game составляет уникальный идентификатор таблицы.

•  season – Указывает сезон, для которого записывается рейтинг. Вместе с полями user и game составляет уникальный идентификатор таблицы.

•  game – Указывает матч, для которого записан рейтинг. Вместе с полями user и game составляет уникальный идентификатор таблицы.

•  rating – Хранит рейтинг, записанный для данного юзера, сезона и матча.

•  date – Хранит дату записи рейтинга.

Таблица: reputation (Рис.1.30).

Таблица хранит репутацию пользователей по матчам.

Рисунок 1.30. – Таблица reputation.

Поля:

•  user – Указывает юзера, для которого записана репутация. Вместе с полями season и game составляет уникальный идентификатор таблицы.

•  season – Указывает сезон, для которого записывается репутация. Вместе с полями user и game составляет уникальный идентификатор таблицы.

•  game – Указывает матч, для которого записана репутация. Вместе с полями user и game составляет уникальный идентификатор таблицы.

•  reputation – Хранит репутацию, записанную для данного юзера, сезона и матча.

•  date – Хранит дату записи репутации.

Далее представлены ER-диаграммы данной базы данных. Из-за своего объема диаграммы разбиты на подгруппы:

•  «Технические таблицы», обеспечивающие работу сайта (Рис. 1.31(а)).

•  Таблицы, обеспечивающие проведение конкретного турнира (Рис. 1.31(б)).

•  Общие таблицы для всех турниров (Рис. 1.31(в)).

Рисунок 1.31 (а) – Связи между «техническими таблицами».

Рисунок 1.31 (б) – Связи между таблицами для конкретных турниров.

Рисунок 1.31 (в) – Связи между общими таблицами для всех турниров.

2  Обработка данных.

Для обработки поступающих данных на серверной стороне мной была выбрана платформа .NET. Серверное приложение написано на C# под технологию ASP.NET. И здесь речь стоит вести лишь о причинах выбора технологии веб-разработки, которая уже сама собой обуславливает тот или иной выбор языка программирования. В данном случае выбор пал на ASP.NET по нескольким причинам. Во-первых, наличие большого количества встроенных возможностей, таких, как организация регистрации и аутентификации пользователей, настройка безопасности сайта, создание и настройка ролей пользователей, встроенные серверные веб-элементы управления и т.п., позволяющих добиваться требуемого результата сравнительно просто и быстро. Во-вторых, значительный опыт разработки на данной платформе, откуда следует привычный синтаксис, знание некоторых особенностей и личная симпатия, что в сумме повышает удовлетворение от процесса и, следовательно, эффективность результата. И, поскольку итоговый выбор был сделан в пользу данной платформы, разработка велась в среде Visual Studio 2010, дающей наиболее мощный инструментарий и большой количество возможностей при работе с этой платформой. Так же на чаше весом .NET и Visual Studio легло то, что для разработки веб-интерфейса отведен отдельный файл, что на мой взгляд является очень удобно, не создает путаницы при работе и дает возможность разработчику двигаться последовательно при создании страницы.

2.1  Работа с пользователями.

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

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