Описание:¶
Для своей работы приложение использует базу данных sqlite.
Таблицы¶
В базе присутствуют 4 таблицы:
Таблица пользователей
Таблица ошейников
Таблица собак
Таблица связи волонтеров с собаками
Таблица users¶
В таблице users хранится информация о пользователях, зарегистрировашихся в приложении.
Поля users:¶
id - поле типа integer, primary key
name - поле типа string, содержит информацию о имени пользователя, должно быть уникальным в таблице
email - поле типа EmailString, содержит информацию о почте пользователя, должно быть уникальным в таблице
hash_password - поле типа string, содержит хэш от пароля пользователя, используется для авторизации пользователя в приложении
phone - поле типа string, содержит информацию о телефоне пользователя, должно быть уникальным в таблице
token - поле типа string, содержит сгенерированный токен пользователя, который используется для доступа почти ко всем функциям приложения
Таблица collars¶
В таблице хранится информация об активных ошейниках. Ошейники периодически отправляют запрос в базу на обновление данных о месторасположении ошейника (эмулятор такого ошейника в docs/scripts/script.py).
Поля collars¶
id - поле типа integer, primary key
ip - поле типа string, содержит информацию о ip ошейника
Таблицаа dogs¶
В таблице содержится информация о бездомных собаках, зарегистрированных в приложении.
Поля dogs¶
id - поле типа integer, primary key
name - поле типа string, содержит кличку собаки
description - поле типа string, содержит описание и приметы собаки
collar_id - поле типа Integer, содержит id ошейника, который закреплен на собаке.
datas - поле типа array, содержит массив объектов из таблицы
DogsData, связанные с текущей по полямdogs.id=DogsData.dog_id
Таблица DogsData¶
Таблица содержит набор информации о собаке в определенное время.
Поля DogsData¶
id - поле типа integer, primary key
dog_id - id собаки
latitude - поле типа decimal, содержит информацию о координатах собаки в конкретный момент времени
longitude - поле типа decimal, содержит информацию о координатах собаки в конкретный момент времени
datetime - поле типа datetime, содержит дату и время, когда была получена информация о собаке
Таблица tasks¶
Таблица содержит информацию о заданиях, которые пользователи могут выдавать друг другу.
Поля tasks¶
id - поле типа integer, primary key
dog_id - поле типа integer, содержит id собаки, с которой связано задание
type - поле типа string, содержит описание самого задания
status - поле типа boolean default False,
Trueесли задание выполнено,Falseесли нет.responses - поле типа array, содержит массив объектов из таблицы
TaskResponses, связанные с текущей по полямtasks.id=TaskResponses.task_id
Таблица TaskResponses¶
Таблица содержит информацию об отчетах на задания из таблицы tasks
Поля TaskResponses¶
id - поле типа integer, primary key
task_id - поле типа integer, содержит id задания
proof - поле типа string, содержит доказательство выполенного задания
user_id - поле типа integer, содержит id пользователя, который выполнил задание
delete - поле типа boolean, default False,
Trueесли отчёт отклонен,Falseесли принят