Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПвБД_Курсовик_ОрищенкоТС.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
895.63 Кб
Скачать

Описание инструментов субд

В качестве системы управления базами данных я выбрал свободно распространяемую СУБД MySQL версии 5.5. Она отвечает требованиям по таким критериям как

  • надежность

  • безопасность

  • скорость работы.

СУБД MySQL реализует язык SQL, совместимый со стандартом SQL:2008, который на сегодняшний день является крайним, что говорит об относительной «свежести» данного продукта.

Язык программирования

Для написания web-приложений используется множество языков, например: PHP, Perl, технология ASP, и т.д. Из всего множества этих языков я выбрал язык PHP версии 5.3, который является наиболее подходящим инструментом для реализации необходимого web-приложения, так как имеет понятный Си-подобный синтаксис, реализует парадигму ООП на достаточном уровне и обладает чрезвычайной гибкостью.

Как известно, писать что-либо свое необходимо лишь тогда, когда задача, решаемая программистом уникальна. В противном случае полезно использовать уже готовые инструменты. В данном случае для реализации своего приложения я использовал функционал PHP фреймворка CodeIgniter версии 2.1. Данный фреймворк реализует шаблон MVC, который подразумевает разделение логики и представления web-приложения.

Ход выполнения приложения CodeIgniter:

Фреймворк CodeIgniter имеет следующую файловую структуру:

application

----controllers

----models

----views

----...

system

----...

Для разработчиков важны лишь папки controllers, models и views, в которых расположены соответственно контроллеры, модели и представления.

Структура базы данных Диаграмма

Описание таблиц

users

Таблица users содержит в себе информацию о зарегистрированных в системе пользователях. Таблица имеет следующую структуру:

Поле

Описание

Тип данных

Default

NULL

id

Уникальный номер пользователя на сайте

INT

нет

name

Имя пользователя в системе

VARCHAR(30)

нет

email

Адрес электронной почты пользователя

VARCHAR(254)

нет

password

Пароль от аккаунта. Хранится в зашифрованном виде

VARCHAR(32)

нет

birthday

Дата рождения пользователя

DATE

нет

reg_date

Дата регистрации пользователя

DATE

нет

active

Флаг активности пользователя

TINYINT

1

нет

admin

Флаг администратора

TINYINT

0

нет

friends

Таблица содержит информацию о дружественных связях между пользователями.

Поле

Описание

Тип данных

Default

NULL

id

Уникальный идентификатор отношения

INT

нет

friend1

Идентификатор пользователя, который предложил

INT

нет

friend2

Идентификатор пользователя, которому предложили

INT

нет

confirmed

Флаг принятия приглашения

TINYINT

0

нет

date

Дата создания связи

DATE

нет

dialogs

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

Поле

Описание

Тип данных

Default

NULL

id

Уникальный идентификатор

INT

нет

user_1

Идентификатор пользователя, инициировавшего диалог

INT

нет

user_2

Идентификатор пользователя, с которым инициировался диалог

INT

нет

messages

Таблица содержит личные сообщения между пользователями в пределах существующего диалога.

Поле

Описание

Тип данных

Default

NULL

id

Уникальный идентификатор сообщения

INT

нет

dialog_id

Идентификатор диалога

INT

да

from_id

Идентификатор отправителя

INT

нет

to_id

Идентификатор получателя

INT

нет

text

Текст сообщения

TEXT

нет

date

Дата отправления сообщения

DATETIME

нет

read

Флаг прочтения сообщения получателем

TINYINT

0

нет

categories

Таблица для хранения созданных пользователем категорий альбомов.

Поле

Описание

Тип данных

Default

NULL

id

Уникальный идентификатор категории

INT

нет

user_id

Идентификатор пользователя-владельца. Берется из таблицы Users

INT

нет

title

Заголовок категории

NVARCHAR(200)

нет

date

Дата создания категории

DATETIME

нет

albums

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

Поле

Описание

Тип данных

Default

NULL

id

Уникальный идентификатор альбома

INT

нет

user_id

Идентификатор пользователя-владельца. Берется из таблицы users

INT

нет

category_id

Идентификатор категории, которой принадлежит альбом

INT

нет

title

Название альбома

NVARCHAR(100)

нет

description

Описание альбома

TEXT

да

date

Дата создания альбома

DATE

нет

photos

Таблица для хранения информации о загруженных пользователем фотографиях.

Поле

Описание

Тип данных

Default

NULL

id

Уникальный номер фотографии

INT

нет

user_id

Номер пользователя, загрузившего файл. Берется из таблицы users

INT

нет

album_id

Номер альбома, в котором будет размещена фотография.

INT

нет

title

Название фотографии

NVARCHAR(50)

нет

file_name

Имя файла, с которым фотография хранится на диске.

NVARCHAR(50)

нет

size

Размер физического файла фотографии в килобайтах

INT

нет

width

Ширина изображения в пикселах

INT

нет

height

Высота изображения в пикселах

INT

нет

date

Дата загрузки фотографии

DATE

нет

marks

Таблица содержит информацию о поставленных пользователем оценках фотографии.

Поле

Описание

Тип данных

Default

NULL

id

Идентификатор оценки

INT

нет

photo_id

Идентификатор оцениваемой фотографии

INT

нет

user_id

Идентификатор автора оценки

INT

нет

mark

Оценка

TINYINT

нет

comments

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

Поле

Описание

Тип данных

Default

NULL

id

Уникальный идентификатор комментария

INT

нет

user_id

Идентификатор пользователя – автора комментария. Если гость, то NULL

INT

да

photo_id

Идентификатор комментируемой фотографии

INT

нет

text

Текст комментария

TEXT

нет

guest_email

Если комментарий оставил гость, то заносим сюда E-mail

NVARCHAR(254)

да

date

Дата оставления комментария

DATETIME

нет