дизайн таблицы базы данных для рейтингов в MySQL - PullRequest
0 голосов
/ 20 марта 2019

Я разрабатываю таблицу рейтингов в MySQL. Дело в следующем:

а) Тот, кто дает оценку другому, может быть другого типа (Администратор, Клиент, Поставщик или что-либо еще в будущем)

б) Тот, кто получает оценку от другого, может отличаться тип (Admin, Client, Provider или что-либо еще в будущем)

в) Предоставление оценок другим происходит, когда есть заказ (представьте Просто зайдите на сайт и закажите еду. когда они приносят тебе еду, ты оцените их). но заказы могут быть разного рода. В моем случае порядок означает доставку грузов. Так что я могу иметь RoadOrder, SeaOrder.

Посмотрев на вышеперечисленные вещи, я пришел к выводу, что таблицы будут такими:

1) таблица all_ratings (Эта таблица не рассчитывает текущие рейтинги для каждого типа пользователей. Здесь 3 морфа) * ​​1014 *

id | from_userable_type | from_userable_id | to_userable_type | to_userable_id | orderable_type | orderable_id | rating

enter image description here

2) таблица рейтингов (которая рассчитывает текущий рейтинг. All_ratings просто сохраняет любой вид рейтинга от каждого пользователя, в то время как таблица оценок имеет окончательный рейтинг. ratingable_id и ratingable_type могут быть любыми типами пользователей)

id | quantity  | current_rating |  ratingable_id | ratingable_type 

enter image description here

Таблица пользователей

id | name | email | userable_id | userable_type

Администраторы, клиенты, провайдеры (они пока выглядят одинаково)

id

стол RoadOrder

id | from_place  | to_place | ...etc

Вопрос: что вы думаете? это правильная схема таблицы для этого типа сценария?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...