假设我想创建一个数据库来存储餐馆的顾客评论。
现在假设我有一个名为' Qualities'的数据库表。餐厅具有的某些品质(例如客户服务,食品质量,氛围,物有所值等)以及每种品质的更详细描述。
现在让我们说我还有一张名为'评论'个人评论中,对“质量”中的每个上述特质进行评级。表
这造成了一个两难境地:'评论'中的列数。 table取决于' Qualities'中的行数。表。如果我们在“品质”中添加一个新的质量评级。表我们需要在'评论'中创建相应的列。表,以便用户评价此质量。
为上述问题设计关系数据库的最佳方法是什么?如果您在回答时包含数据库架构,则可能会有所帮助。
感谢。
答案 0 :(得分:3)
你的解释方式是正确的,你需要一个被评论的餐厅支持的每个品质的专栏。如果“品质”是动态的,那么最好也使得相关评分也是动态的。因此,您最好将这些分数维护为将分数映射到每个质量以进行审核的行,而不是将分数保留为评论中的列。
我可能会这样做:
restquality (m:n)
|n |n
|1 |
user restaurant |
|1 |1 |1
| |n quality
+----n-review |1
|1 |
|n |n
reviewquality (m:n)
重要架构:
希望这有帮助。