评级表的数据库表设计和评级表

时间:2017-02-21 07:08:27

标签: mysql sql database database-design database-schema

我有一张表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_ratingreview_id为空。

用户还可以为餐厅插入评论,其评级与该评论相关联,

因此,评论会被插入tc_res_reviews,并且评分已插入tc_res_rating review_id

这种情况下这是正确的表架构吗?

1 个答案:

答案 0 :(得分:0)

您可以做的一件事是确保从tc_res_reviews表中删除重复列(res_id和user_id)。

我可以完全删除tc_res_reviews表,因为我们可以在tc_res_rating表中保存查看本身。我相信一个用户只能对餐厅进行一次审核。

可以允许列检查为NULL,因此想要对餐馆评分的用户可以保存餐馆的评级。