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!      |
=====================================================================

ここで、誰かが「アレルギー ニュース」からのレビューを追加したいとします。彼らは「ナッツフリー」というフィールドを持っています。または、レビューのソースは、カシュルートの遵守、ハラールの遵守、またはビーガンフレンドリーの程度を説明することができます. 私は設計者として、将来のデータ ソースが持つ可能性のあるオプション フィールドを知りません。質問に答えられるようになりたい:

  • Zagat レビューのすべてのフィールドは何ですか?
  • レビュー id=x の場合、オプション フィールド「ビーガン フレンドリー」の値は何ですか?

では、これらの異種のデータ ソースを処理し、これらのクエリに応答できるスキーマを設計するにはどうすればよいでしょうか? NoSQL を使用しない理由は、特定の種類の正規化が必要であり、これが既存の MySQL ベースのプロジェクトの一部であるためです。

4

1 に答える 1

0

review_id、a field(「ビーガンフレンドリー」など) とフィールドの値を含むテーブルとの多対多の関係を使用します。それからもちろん、一方を他方にマップするための reviews_fields テーブル。

乾杯

于 2012-11-13T22:16:56.577 に答える