0

我有一个带有 MySQL 数据库的项目,我希望能够上传各种数据集。假设我正在建立一个餐厅评论聚合器。因此,我们希望继续添加我们可以获得的所有餐厅评论来源,并保留所有信息。

我有一张桌子 review_sources

=========================
| id | name             |
=========================
| 1  | Zagat            |
| 2  | GoodEats Magazine|
| ...                   |
| 50 | Allergy News     |
=========================

现在说我有一张桌子评论

=====================================================================
| id | Restaurant Name      | source_id | Star Rating | Description |
=====================================================================
| 0  | Joey's Burgers       | 1         | 3.5         | Wow!        | 
| 1  | Jamal's Steaks       | 1         | 3.5         | Yummy!      |
| 2  | Jenny's Crepes       | 1         | 4.5         | Sweet!      |
| ....                                                              |
| 253| Jeeva's Curries      | 3         | 4           | Spicy!      |
=====================================================================

现在假设有人想添加“过敏新闻”的评论,他们有一个“无坚果”字段。或者评论来源可以描述 kashrut 合规程度、清真合规性或素食友好程度。作为设计师,我不知道未来数据源可能具有的可选字段。我希望能够回答查询:

  • Zagat 评论中的所有字段是什么?
  • 对于评论 id=x,可选字段“vegan-friendly”的值是多少?

那么如何设计一个可以处理这些不同数据源并回答这些查询的模式呢?我不使用 NoSQL 的原因是我确实想要某些类型的规范化,并且这是现有的基于 MySQL 的项目的一部分。

4

1 回答 1

0

我将使用多对多关系与包含 a review_id、 a field(例如“素食主义者”)和字段值的表。然后当然是一个reviews_fields 表来将一个映射到另一个。

干杯

于 2012-11-13T22:16:56.577 回答