Skip to content

Instantly share code, notes, and snippets.

@getjump
Last active November 16, 2019 10:53
Show Gist options
  • Select an option

  • Save getjump/702f5557f74a374097ac to your computer and use it in GitHub Desktop.

Select an option

Save getjump/702f5557f74a374097ac to your computer and use it in GitHub Desktop.
controllers:
desc: Все возможные контроллеры в системе
id: primary key
name: Название контроллера(системное!)
actions:
desc: Все возможные действия в системе(с возможностью использования wildcard символа)
id: primary key
name: Название действия(системное!)
controller_id: foreign key controllers.id - контроллер
group_valid_actions:
desc: Указывает возможные действия для группы
id: primary key
action_id: foreign key actions.id - действие
group_id: foreign key group.id - группа
user_valid_actions:
desc: Указывает возможные действия для конкретных пользователей(на случай, если появится такая необходимость)
id: primary key
action_id: foreign key actions.id - действие
user_id: foreign key group.id - пользователь
groups:
desc: Возможные группы(предположительно, для реализации системы прав)
id: primary key
name: строка - название группы
group_users:
desc: Связь пользователя и группы
id: primary key
user_id: foreign key users.id - пользователь
group_id: foreign key groups.id - группа
users:
desc: Сущность пользователя в системе
id: primary key
first_name: строка - имя
last_name: строка - фамилия
user_tokens:
user: Пользователь может деактивироввать свой токен(user_id == user.id)
desc: Множественные "токены"(единица для авторизации) пользователя
id: primary key
user_id: foreign key users.id - пользователь
token: строка - токен
active: bool - может ли использоваться для проведения авторизации пользователя
device_hash: строка - специально сформированная строка с уникальным идентификатором устройства
user_codes:
desc: Множественные "коды" необходимые для регистрации/авторизации
id: primary key
token_id: foreign key user_tokens.id - токен
code: строка - код
used: bool - использован?
friends:
user: Пользователь имеет доступ на чтение и создание записей вида first_id == user.id || second_id == user.id
admin: Администратор имеет доступ на чтение/запись/создание к first_id, second_id
desc: Используется для описания связей между пользователями
id: primary key
first_id: foreign key users.id - инициатор(подписчик)
second_id: foreign key users.id - на кого направлено
food:
user: Пользователь имеет доступ на чтение и создание/запись(к своему) к name, price, place_id
admin: Администратор имеет доступ на чтение/запись/создание к name, price, place_id
desc: Сущность еды в системе
id: primary key
name: строка - название
price: число - цена
place_id: место к которому привязана
food_tags:
user: Пользователь имеет доступ на создание к food_id, tag_id, user_id
admin: Администратор имеет доступ на создание и запись к food_id, tag_id, user_id
desc: Связь между тэгами и едой
id: primary key
food_id: foreign key users.id - еда
tag_id: foreign key tag.id - тэг
user_id: foreign key users.id - создатель связи
place_tags:
user: Пользователь имеет доступ на создание к place_id, tag_id, user_id
admin: Администратор имеет доступ на создание и запись к place_id, tag_id, user_id
desc: Связь между тэгами и местами
place_id: foreign key places.id - место
tag_id: foreign key tag.id - тэг
user_id: foreign key users.id - создатель связи
tags:
user: Пользователь имеет доступ на создание к name
admin: Администратор имеет доступ на создание и запись к name
desc: Множественные тэги
id: primary key
name: строка - название
places:
user: Пользователь имеет доступ на создание к name, location, addresss
admin: Администратор имеет доступ на создание и запись к name, location, addresss
desc: Места в системе
id: primary key
name: Название места
location: point - пара вида { широта, долгота }
address: строка - текстовая репрезентация адреса
food_photos:
user: Пользователь имеет доступ на создание к food_id, photo_id
admin: Администратор имеет доступ на создание и запись к food_id, photo_id
desc: Связь фотографий и еды
id: primary key
food_id: foreign key users.id - еда
photo_id: foreign key photos.id - фото
user_photos:
user: Пользователь имеет доступ на создание/изменение(для своего user_id) к photo_id, main
admin: Администратор имеет доступ на создание и запись к user_id, photo_id, main
desc: Связь фотографий и пользователей
id: primary key
user_id: foreign key users.id - пользователь
photo_id: foreign key photos.id - фото
main: bool - главная фотография пользователя?
photos:
desc: Фотографии хранимые на удалённом сервисе(Amazon S3)
id: primary key
photo: строка - преобразуемая с помощью переменных окружения на определенном сервере(Heroku) в явную ссылку
photo_ratings:
user: Пользователь имеет доступ на создание/изменение(для своего user_id) к photo_id, rating
admin: Администратор имеет доступ на создание и запись к user_id, photo_id, rating
desc: Оценки для фото
id: primary key
user_id: foreign key users.id - пользователь
photo_id: foreign key photos.id - фото
rating: число из множества {1..5}
food_ratings:
user: Пользователь имеет доступ на создание/изменение(для своего user_id) к food_id, rating
admin: Администратор имеет доступ на создание и запись к user_id, food_id, rating
desc: Оценки для еды
id: primary key
user_id: foreign key users.id - пользователь
food_id: foreign key food.id - еда
rating: число из множества {1..5}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment