2012-11-13 44 views
0

我有一個帶有MySQL數據庫的項目,我希望能夠上傳各種數據集。假設我正在建立餐廳評論聚合器。因此,我們希望不斷添加所有我們可以掌握的餐廳評論來源,並保留所有信息。未知列的RDBMS架構

我有一個表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,什麼是可選字段「素食友好」的價值?

那麼如何設計一個模式來處理這些不同的數據源並回答這些查詢呢?我之所以不參加NoSQL,是因爲我需要特定類型的規範化,而且這是現有的基於MySQL的項目的一部分。

回答

0

我會與包含review_idfield(例如「素食主義者友好」)和該字段的值的表格使用多對多關係。當然,還有一個reviews_fields表格可以將一個映射到另一個表格。

乾杯