2013-05-28 99 views
2

假設我想創建一個數據庫來存儲顧客對餐廳的評論。關於客戶評論的關係數據庫設計

現在假設我有一個名爲「品質」的餐廳具有的某些品質的數據庫表(例如客戶服務,食品質量,氣氛,物有所值等)以及每種品質的更詳細描述。

現在我們假設我也有一張表格,稱爲'評論',用於評估'質量'表格中上述各項質量的評分。

這造成了一個困境:「評論」表中的列數取決於「質量」表上的行數。如果我們在「質量」表中添加要評分的新質量,我們需要在「評價」表格中創建相應的列,以便用戶對此質量進行評分。

爲上述問題設計關係數據庫的最佳方法是什麼?如果您在回答時包含數據庫模式,那麼這可能會有所幫助。

謝謝。

回答

3

你說得對,你需要一個被評論的餐廳支持的每個質量的列。如果「品質」是動態的,那麼最好也要使相關的評分動態化。因此,不要將評分作爲評論的專欄,您最好將其保持爲將評分映射到每個評價質量的行。

我可能會去這樣的事情:

   restquality (m:n) 
       |n |n 
       |1 | 
user  restaurant | 
|1  |1   |1 
|  |n  quality 
+----n-review  |1 
      |1  | 
      |n  |n 
     reviewquality (m:n) 
  • 用戶可以查看許多餐館
  • 一家餐館可能有很多的素質和質量可應用於多個餐廳(AM :通過restquality管理的關係)。
  • 評論「評論」一家特定的餐廳,每個品質的評分都與該餐廳相關的特質相關。這是通過審查質量進行管理的:該審查將此分數評分爲該質量(其中父母評論引用餐廳)。

重要模式:

  • 回顧:reviewid(PK),用戶ID,restid,總結
  • reviewquality:reviewqualityid(PK),reviewid,qualityid,得分
  • restquality:restqualityid(PK ),restaurantid,qualityid

希望這會有所幫助。

+0

非常清晰的解釋 - 非常感謝。在ASCII圖上也做得很好! –