users
id_users (PK) name
email
password remember_token is_admin
Рисунок 2.4 - Представлення моделі бази даних додатку
Зв’язок сутності «Категорії» з сутністю «Всі визначні пам’ятки» означає, що до однієї категорії може належати декілька пам’яток, але пам’ятка повинна мати власну категорію.
Зв’язок сутності «Всі визначні пам’ятки» з сутністю «Зображення» означає, що у однієї пам’ятки може бути декілька зображень, але зображення повинно відноситися до пам’ятки.
Зв’язок сутності «Користувачі» з сутністю «Обрані пам’ятки» означає, що у користувача може бути декілька обраних пам’яток для створення власної екскурсії.
Зв’язок сутності «Всі визначні пам’ятки» з сутністю «Обрані пам’ятки» означає, що обрана пам’ятка може бути обраною декількома користувачами.
Зв’язок сутності «Обрані пам’ятки» з сутністю «Пам’ятки у екскурсії» означає, що обрана пам’ятка може бути додана до екскурсій.
Зв’язок сутності «Користувачі» з сутністю «Екскурсії користувача» означає, що у користувача може бути декілька створених екскурсійних маршрутів.
Зв’язок сутності «Пам’ятки у екскурсійному маршруті» з сутністю «Всі екскурсійні маршрути» означає, що обрані пам’ятки можуть бути додані до екскурсійних маршрутів.
Зв’язок сутності «Екскурсійні маршрути користувача» з сутністю «Всі екскурсійні маршрути» означає, що створені користувачем екскурсійні маршрути можуть бути збережені та додані до списку усіх створених маршрутів.
Зв’язок сутності «Користувачі» з сутністю «Замовлені екскурсії користувача» означає, що у користувача може бути декілька замовлених екскурсій.
Проаналізувавши сутності, використовувані в моделі додатку, можна перейти до реалізації структури бази даних. Для цього слід представити назви необхідних таблиць, атрибутів, типів, їх призначення та обмеження (табл. 2.1).
Таблиця 2.1 - Структура бази даних Таблиця
| Поле
| Зміст
| Тип
| Ключі
| Обмеження
| Категорії
| id_categories
| Ідентифікатор категорії
| integer
| PK
| not null
| title
| Назва категорії
| varchar(255)
|
| not null
| slug
| Семантичний
URL
| varchar(255)
|
| not null
| Всі визначні пам’ятки
| id_places
| Ідентифікатор пам’ятки
| integer
| PK
| not null
| id_categories
| Ідентифікатор категорії
| integer
| PFK
| not null
| slug
| Семантичний
URL
| varchar(255)
|
| not null
| title
| Назва пам’ятки
| varchar(255)
|
| not null
| content
| Опис пам’ятки
| text
|
|
| post_img
| Зображення
| varchar(255)
|
|
| post_ thumbnail
| Мініатюра зображення
| varchar(255)
|
|
|
Продовження таблиці 2.1 - Структура бази даних Таблиця
| Поле
| Зміст
| Тип
| Ключі
| Обмеження
| Всі визначні пам’ятки
| location
| Місце розташування пам’ятки
| varchar (255)
|
|
| Зображення
| id_images
| Ідентифікатор зображення
| integer
| PK
| not null
| id_places
| Ідентифікатор пам’ятки
| integer
| PFK
| not null
| id_categories
| Ідентифікатор категорії
| bigint(20)
| PFK
| not null
| img
| Зображення
| varchar (255)
|
|
| gallery_ thumb
| Зображення в галереї
| varchar (255)
|
|
| Користувачі
| id_users
| Ідентифікатор користувача
| integer
| PK
| not null
| name
| Ім’я користувача
| varchar (255)
|
| not null
| email
| Електронна
пошта
| varchar (255)
|
| not null
| password
| Пароль
| varchar (255)
|
| not null
| remember_ token
| Запам’ятати
користувача
| varchar (255)
|
|
| is_admin
| Чи адмін
| tinyint(1)
|
|
|
Продовження таблиці 2.1 - Структура бази даних Таблиця
| Поле
| Зміст
| Тип
| Ключі
| Обмеження
| Обрані пам’ятки
| id_place_
user
| Ідентифікатор обраної пам’ятки користувача
| integer
| PK
| not null
| id_users
| Ідентифікатор користувача
| integer
| PFK
| not null
| id_places
| Ідентифікатор пам’ятки
| int(20)
| PFK
| not null
| id
categories
| Ідентифікатор категорії
| integer
| PFK
| not null
| Пам’ятки у екскурсійному маршруті
| id_place_ route
| Ідентифікатор пам’ятки у екскурсії
| integer
| PK
| not null
| id_place_
user
| Ідентифікатор обраної пам’ятки користувача
| integer
| PFK
| not null
| id_users
| Ідентифікатор користувача
| integer
| PFK
| not null
| id_places
| Ідентифікатор пам’ятки
| integer
| PFK
| not null
|
Продовження таблиці 2.1 - Структура бази даних Таблиця
| Поле
| Зміст
| Тип
| Ключі
| Обмеження
| Пам’ятки у екскурсійному маршруті
| id
categories
| Ідентифікатор категорії
| integer
| PFK
| not null
| Індивідуальні екскурсії користувача
| id_route_ user
| Ідентифікатор екскурсії користувача
| integer
| PK
| not null
| id_users
| Ідентифікатор користувача
| integer
| PFK
| not null
| Створені екскурсії
| id_routes
| Ідентифікатор маршрутів
| integer
| PK
| not null
| title
| Назва маршруту
| varchar(255)
|
| not null
| id_place_ route
| Ідентифікатор пам’ятки у маршруті
| integer
| PFK
| not null
| id_place_
user
| Ідентифікатор обраної пам’ятки користувача
| integer
| PFK
| not null
| id_users
| Ідентифікатор користувача
| integer
| PFK
| not null
|
Продовження таблиці 2.1 - Структура бази даних Таблиця
| Поле
| Зміст
| Тип
| Ключі
| Обмеження
| Створені екскурсії
| id_places
| Ідентифікатор пам’ятки
| integer
| PFK
| not null
| id
categories
| Ідентифікатор категорії
| integer
| PFK
| not null
| id_route_ user
| Ідентифікатор маршруту користувача
| integer
| PFK
| not null
| Г отові екскурсії
| id_excursion
| Ідентифікатор екскурсії
| integer
| PK
| not null
| title
| Назва екскурсії
| varchar (255)
|
| not null
| content
| Опис екскурсії
| text
|
| not null
| id_excursion_ user
| Ідентифікатор замовленої екскурсії користувачем
| integer
| PK
| not null
| id_users
| Ідентифікатор користувача
| integer
| PFK
| not null
|
Продовження таблиці 2.1 - Структура бази даних Таблиця
| Поле
| Зміст
| Тип
| Ключі
| Обмеження
| Замовлені екскурсії
| id_users
| Ідентифікатор користувача
| integer
| PFK
| not null
| id_excursion_ user
| Ідентифікатор замовленої екскурсії користувачем
| integer
| PK
| not null
| |