2017-02-21 20 views
0

У меня есть таблица tc_res_rating, которая выглядит следующим образом:базы данных дизайн таблицы для таблицы оценок и обзора таблицы с рейтингами

| user_id | res_id | rating | review_id | post_date (CURRENT_TIMESTAMP)| 
| 1 | 13 | 4.0 | 3  | 2016-12-14 17:02:12   | 
| 2 | 6 | 3.5 | NULL | 2016-12-19 20:55:24   | 

и другой таблицы tc_res_reviews, которые выглядят как:

| review_id | res_id | user_id | review |  date_created | 
|  3  | 13 | 1 | [BLOB - 4 B] | 2016-12-14 17:02:12 | 

Пользователи могут создавать рейтинги для ресторана без отзывов,

поэтому данные о стоимости будут помещены непосредственно в tc_res_rating с review_id NULL.

Пользователи также могут вставить обзор для ресторана с рейтингом, связанным с этим обзором,

поэтому обзор вставляются в tc_res_reviews и рейтинге вставляется в tc_res_rating с review_id

Является ли это право схемы таблицы для этот тип сценария?

+0

Выглядит хорошо. Учитывая, что у вас уже есть идентификатор ресторана и идентификатор пользователя в обеих таблицах, обзор кажется избыточным – Strawberry

+0

@yeh Какие у вас основные ключи? Можно ли просмотреть обзор без рейтинга? – reaanb

+0

Я не думаю, что вам нужно иметь две таблицы, вы можете использовать одну таблицу, которая также должна включать столбец «обзор». Если кто-то не хочет писать отзыв, держите его NULL. –

ответ

0

Вы можете сделать это, чтобы удалить повторяющиеся столбцы (res_id и user_id) из таблицы tc_res_reviews.

Я могу полностью удалить таблицу tc_res_reviews, так как мы можем сохранить сам обзор в таблице tc_res_rating. Я считаю, что один пользователь может дать обзор ресторана только один раз.

Просмотр столбцов может быть разрешен NULL, поэтому пользователи, которые хотят просто оценить ресторан, могут сохранить рейтинг для ресторана.

Смежные вопросы