На рисунке 8 представлены основные таблицы базы данных системы. Таблицы, автоматически генерируемые фреймворком Django, были скрыты, поскольку не имеют отношения к данному дипломному проекту.
Рисунок 7 – Инфологическая схема базы данных
Рисунок 8 – Структура базы данных
Таблица users хранит основную информацию о пользователях
Таблица 1.1 – Users
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
first_name | Строковый |
last_name | Строковый |
Строковый | |
password | Строковый |
is_stuff | Логический |
is_active | Логический |
is_superuser | Логический |
last_login | Целочисленный |
date_joined | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер пользователя;
- name – отображаемое имя пользователя;
- first_name – имя пользователя;
- last_name – фамилия пользователя;
- email – электронная почта пользователя (логин пользователя для входа в систему);
- password – пароль пользователя, для входа в систему;
- is_stuff – флаг активности пользователя;
- is_active – флаг активации профиля (1 – профиль активирован, 0 – профиль не активирован);
- is_superuser – флаг суперюзера(модератора);
- last_login – дата и время последней авторизации;
- date_joined – дата и время регистрации;
· Таблица geo_countries хранит список стран
Таблица 1.2 – Geo_countries
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер страны;
- name – название страны;
· Таблица geo_cities хранит список городов
Таблица 1.2 – Geo_cities
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
country_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер города;
- name – название города;
- country_id – номер страны;
· Таблица us_info хранит дополнительную информацию о пользователе
Таблица 1.3
Название поля | Тип поля |
user_id | Целочисленный |
city_id | Целочисленный |
icq | Целочисленный |
avatar_path | Строковый |
- user_id – уникальное поле таблицы численного типа, содержащее номер пользователя;
- city_id – номер города;
- icq – ICQ UIN пользователя;
- avatar_path – путь к фотографии пользователя;
· Таблица us_groups хранит названия групп пользователей
Таблица 1.4 – Us_groups
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- Id – уникальное поле таблицы численного типа, содержащее номер группы;
- name – название группы;
· Таблица us_permissions хранит список прав доступа
Таблица 1.5 – Us_permissions
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
content_type_id | Целочисленный |
codename | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер прав доступа;
- name – название прав доступа;
- content_type_id – номер тира содержимого;
- codename – перечень прав;
· Таблица us_group_permissions хранит связи групп пользователей и прав доступа, соответствующих им
интернет магазин фотооборудование цена
Таблица 1.6 – Us_group_permissions
Название поля | Тип поля |
id | Целочисленный |
group_id | Целочисленный |
permission_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- group_id – номер группы пользователей;
- permission_id – номер прав доступа;
· Таблица us_user_groups хранит список принадлежностей пользователей к группам
Таблица 1.7 – Us_user_groups
Название поля | Тип поля |
id | Целочисленный |
user_id | Целочисленный |
group_id | Целочисленный |
- Id – уникальное поле таблицы численного типа, содержащее номер принадлежности;
- user_id – номер пользователя;
- group_id – номер группы;
· Таблица messages хранит сообщения пользователей
Таблица 1.8 – Messages
Название поля | Тип поля |
id | Целочисленный |
subject | Строковый |
body | Текст |
sender_id | Целочисленный |
recipient_id | Целочисленный |
parent_msg_id | Целочисленный |
send_at | Целочисленный |
read_at | Целочисленный |
replied_at | Целочисленный |
sender_deleted_at | Целочисленный |
recipient_deleted_at | Целочисленный |
- Id – уникальное поле таблицы численного типа, содержащее номер сообщения;
- subject – тема сообщения;
- body – текст сообщения;
- sender_id – номер профиля отправителя;
- recipient_id – номер профили получателя;
- parent_msg_id – номер сообщения, в ответ на которое написано данное;
- send_at – дата и время отправления;
- read_at – дата и время прочтения;
- replied_at – дата и время ответа;
- sender_deleted_at – дата и время удаления отправителем;
- recipient_deleted_at – дата и время удаления получателем;
· Таблица it_categories хранит категории содержимого (древовидная структура, вложенные множества)
Таблица 1.9 – It_categories
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
parent_id | Целочисленный |
order | Целочисленный |
slug | Строковый |
alternate_title | Строковый |
description | Текст |
lft | Целочисленный |
rght | Целочисленный |
tree_id | Целочисленный |
level | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер категории;
- name – название категории;
- parent_id – номер родительской категории;
- order – порядок категории;
- slug – название категории на латинице;
- alternate_title – альтернативное название;
- description – описание категории;
- lft – левый индекс;
- rght – правый индекс;
- tree_id – номер дерева категорий;
- level – уровень вложенности категории;
· Таблица it_brands хранит список фирм производителей
Таблица 1.10 – It_brands
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
description | Текст |
logo_path | Строковый |
country_id | Целочисленный |
user_id | Целочисленный |
status | Целочисленный |
created | Целочисленный |
slug | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер фирма;
- name – название фирмы;
- description – описание фирмы;
- logo_path – путь к логотипу;
- country_id – номер страны;
- user_id – номер профиля представителя (0, если нет);
- status – статус публикации (опубликовано, требует модерации, отказано в публикации, требует доработки и т.д.);
- created – дата и время добавления в базу;
- slug – название фирмы на латинице;
· Таблица items хранит список оборудования и его основные характеристики
Таблица 1.11 – Items
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
brand_id | Целочисленный |
description | Текст |
category_id | Целочисленный |
user_id | Целочисленный |
slug | Строковый |
status | Целочисленный |
created | Целочисленный |
max_price | Вещественный |
min_price | Вещественный |
av_price | Вещественный |
- id – уникальное поле таблицы численного типа, содержащее номер оборудования;
- name – название оборудования;
- brand_id – номер фирмы производителя;
- description – описание оборудования;
- category_id – номер категории, к которой принадлежит оборудование;
- user_id – номер пользователя, который добавил оборудование;
- slug – название оборудования на латинице;
- status – статус публикации;
- created – дата и время добавления оборудования;
- max_price – максимальная цена на оборудование;
- min_price – минимальная цена на оборудование;
- av_price – средняя цена на оборудование;
· Таблица us_want_it связывает пользователей с оборудованием, которое они хотят купить
Таблица 1.12 – Us_want_it
Название поля | Тип поля |
id | Целочисленный |
item_id | Целочисленный |
user_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- item_id – номер оборудования;
- user_id – номер пользователя;
· Таблица us_have_it связывает пользователей с оборудованием, которое у них есть
Таблица 1.13 – us_have_it
Название поля | Тип поля |
id | Целочисленный |
item_id | Целочисленный |
user_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- item_id – номер оборудования;
- user_id – номер пользователя;
· Таблица it_pics хранит изображения оборудования
Таблица 1.14 – it_pics
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
path | Строковый |
rating | Вещественный |
status | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер изображения;
- it_id – номер оборудования;
- path – путь к файлу изображения;
- rating – количество просмотров изображения;
- status – статус публикации;
· Таблица it_synonyms хранит синонимы названий оборудования
Таблица 1.15 – it_synonyms
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
title | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер синонима;
- it_id – номер оборудования;
- title – синоним;
· Таблица it_prop_names хранит названия параметров оборудования
Таблица 1.16 – it_prop_names
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
measurement | Строковый |
decor | Целочисленный |
category_id | Целочисленный |
obligatory | Логический |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер параметра;
- name – название параметра;
- measurement – измерение;
- decor – номер режима отображения;
- category_id – номер категории;
- obligatory – обязательность параметра;
- status – статус публикации;
- created – дата и время создания параметра;
· Таблица it_prop_int хранит значения целочисленных параметров
Таблица 1.17 – it_prop_int
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_bool хранит значения логических параметров
Таблица 1.18 – it_prop_bool
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_flo хранит значения параметров
Таблица 1.19 – it_prop_flo
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Вещественный |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_str хранит значения строковых параметров
Таблица 1.20 – it_prop_str
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
name_id | Целочисленный |
value | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер значения;
- it_id – номер оборудования;
- name_id – номер параметра;
- value – значение параметра;
· Таблица it_prop_list_name хранит значения параметров с типом «список»
Таблица 1.21 – it_prop_list_name
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер значения списка;
- name – значение списка;
· Таблица it_prop_list_name_prop хранит связь параметра со списком его значений
Таблица 1.22 – it_prop_list_name_prop
Название поля | Тип поля |
id | Целочисленный |
it_prop_list_name_id | Целочисленный |
it_prop_name_id | Целочисленный |
- it_prop_list_name_id – номер значения списка;
- it_prop_name_id – номер параметра;
· Таблица shops хранит информацию о магазине
Таблица 1.23 – shops
Название поля | Тип поля |
id | Целочисленный |
user_id | Целочисленный |
city_id | Целочисленный |
name | Строковый |
logo_path | Строковый |
description | Текст |
slug | Строковый |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер магазина;
- user_id – номер пользователя, который представляет данный магазин (0 если нет);
- city_id – номер города в котором расположен магазин;
- name – название магазина;
- logo_path – путь к файлу с логотипом магазина;
- description – описание магазина;
- slug – название магазина латиницой;
- status – статус публикации;
- created – дата и время добавления магазина;
· Таблица sh _ goods хранит список товаров пользователей или магазинов
Таблица 1.24 – sh_goods
Название поля | Тип поля |
id | Целочисленный |
it_id | Целочисленный |
user_id | Целочисленный |
shop_id | Целочисленный |
used | Логический |
price | Вещественный |
comment | Текст |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер товара;
- it_id – номер оборудования;
- user_id – номер пользователя;
- shop_id – номер магазина (0 если нет);
- used – б. у. Товар или нет;
- price – цена товара;
- comment – комментарий к товару;
- created – дата добавления товара;
· Таблица galleries хранит список галерей
Таблица 1.25 – galleries
Название поля | Тип поля |
Id | Целочисленный |
date_added | Целочисленный |
title | Строковый |
title_slug | Строковый |
description | Текст |
is_public | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер галереи;
- date_added – дата создания галереи;
- title – название галереи;
- title_slug – название галереи латиницей;
- description – описание галереи;
- is_public – публичная ли галерея;
· Таблица gal _ photos хранит список фотографий
Таблица 1.26 – gal_photos
Название поля | Тип поля |
id | Целочисленный |
photo_path | Строковый |
user_id | Целочисленный |
date_tacken | Целочисленный |
view_count | Целочисленный |
title | Строковый |
title_slug | Строковый |
caption | Текст |
date_added | Целочисленный |
is_public | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер фотографии;
- photo_path – путь до файла с фотографией;
- user_id – номер пользователя, добавившего фотографию;
- date_tacken – дата и время публикации фотографии;
- view_count – количество просмотров фотографии;
- title – заголовок фотографии;
- title_slug – заголовок фотографии латиницей;
- caption – описание фотографии;
- date_added – дата и время добавления фотографии;
- is_public – публична ли фотография;
· Таблица gal_photo_gal хранит принадлежность фотографий к альбомам
Таблица 1.27 – gal_photo_gal
Название поля | Тип поля |
id | Целочисленный |
gallery_id | Целочисленный |
photo_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер принадлежности;
- gallery_id – номер галереи;
- photo_id – номер фотографии;
· Таблица dj_content_type хранит типы содержимого сайта
Таблица 1.28 – dj_content_type
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
app_label | Строковый |
model | Строковый |
- id – уникальное поле таблицы численного типа, содержащее номер типа содержимого;
- name – название типа содержимого;
- app_label – название модуля (префикс таблицы);
- model – модель (название таблицы);
· Таблица tags хранит список тегов
Таблица 1.29 – tags
Название поля | Тип поля |
id | Целочисленный |
name | Строковый |
- Id – уникальное поле таблицы численного типа, содержащее номер тега;
- name – название тега;
· Таблица tag _ taggeditem хранит связи тегов и содержимого сайта
Таблица 1.30 – tag_taggeditem
Название поля | Тип поля |
id | Целочисленный |
tag_id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер связи;
- tag_id – номер тега;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
· Таблица comments хранит комментарии пользователей
Таблица 1.31 – comments
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_pk | Целочисленный |
user_id | Целочисленный |
user_name | Строковый |
user_email | Строковый |
user_url | Строковый |
comment | Текст |
submit_date | Целочисленный |
ip_address | Целочисленный |
is_public | Логический |
is_removed | Логический |
- id – уникальное поле таблицы численного типа, содержащее номер комментария;
- content_type_id – номер типа содержимого;
- object_pk – номер содержимого;
- user_id – номер пользователя, оставившего комментарий;
- user_name – имя пользователя;
- user_email – адрес электронной почты пользователя;
- user_url – ссылка на сайт пользователя;
- comment – текст комментария;
- submit_date – дата и время добавления комментария;
- ip_address – IP адрес пользователя, оставившего комментарий;
- is_public – публичный ли комментарий;
- is_removed – дата и время удаления комментария;
· Таблица cm_flags хранит историю изменений комментария
Таблица 1.32 – cm_flags
Название поля | Тип поля |
id | Целочисленный |
user_id | Целочисленный |
comment_id | Целочисленный |
flag | Строковый |
flag_date | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер записи;
- user_id – номер пользователя, изменившего комментарий;
- comment_id – номер комментария;
- flag – действие, которое произвёл пользователь;
- flag_date – дата и время изменения;
· Таблица recomindations хранит рекомендации пользователей
Таблица 1.33 – recomindations
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
user_id | Целочисленный |
plus | Текст |
minus | Текст |
general | Текст |
positive | Целочисленный |
negative | Целочисленный |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер рекомендации;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- user_id – номер пользователя, оставившего рекомендацию;
- plus – плюсы;
- minus – минусы;
- general – прочие;
- positive – количество пользователей, посчитавших рекомендацию полезной;
- negative – количество пользователей, посчитавших рекомендацию безполезной;
- status – статус публикации;
- created – дата и время создания рекомендации;
· Таблица articles хранит статьи пользователей
Таблица 1.34 – articles
Название поля | Тип поля |
id | Целочисленный |
title | Строковый |
text | Текст |
short_text | Текст |
is_remote | Логический |
url | Строковый |
user_id | Целочисленный |
slug | Строковый |
status | Целочисленный |
created | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер статьи;
- title – заголовок статьи;
- text – текст статьи;
- short_text – сокращённый текст статьи;
- is_remote – статья расположена на удалённом ресурсе;
- url – адрес ресурса на котором расположена статья;
- user_id – номер пользователя, опубликовавшего статью;
- slug – заголовок статьи латиницой;
- status – статус публикации;
- created – дата и время добавления статьи;
· Таблица rating_scores хранит рейтинг содержимого сайта
Таблица 1.35 – rating_scores
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
score | Вещественный |
votes | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер записи;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- score – средняя оценка;
- votes – количество проголосовавших пользователей;
· Таблица rating_votes хранит оценки содержимого сайта пользователями
Таблица 1.36 – rating_votes
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
score | Вещественный |
user_id | Целочисленный |
ip_address | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер оценки;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- score – оценка;
- user_id – номер пользователя;
- ip_address – IP адрес пользователя;
· Таблица rating_weight хранит вес содержимого сайта
Таблица 1.37 – rating_weight
Название поля | Тип поля |
id | Целочисленный |
content_type_id | Целочисленный |
object_id | Целочисленный |
weight | Целочисленный |
votes | Целочисленный |
- id – уникальное поле таблицы численного типа, содержащее номер записи;
- content_type_id – номер типа содержимого;
- object_id – номер содержимого;
- weight – вес содержимого;
- votes – количество пользователей, оценивщих вес содержимого;
· Таблица rating_weight_vote хранит оценки веса содержимого пользователями
Диаграмма классов
На диаграмме классов основного модуля (см. рисунок 9) классы, которые будут реализовывать взаимодействие с базой данных посредством ORM Django. Все классы будут наследоваться от стандартного класса Model, который включён в состав фреймворка. В классе Model уже реализованы необходимые функции для работы с базой данных.