2014-01-30 60 views
1

我正在使用Play實施商店!框架。 Play使用Ebean作爲ORM。現在我正在創建一個評分系統,用戶可以評價產品。用戶只能對產品評分一次。我只是想知道如何設計RATING表的最佳做法。最佳實踐:外鍵作爲主鍵或唯一約束條件

  1. 使用USER_ID和PRODUCT_ID作爲主鍵 或
  2. 使用一個單獨的id作爲主鍵設置外鍵user_id的唯一約束和PRODUCT_ID

哪些優點/缺點?

User 
--------------------- 
id (PK) 
name 
... 
--------------------- 

Product 
--------------------- 
id (PK) 
name 
... 
--------------------- 

Rating 
--------------------- 
user_id (FK) 
product_id (FK) 
rating 
comment 
PK(user_id, product_id) 

OR: 

Rating 
--------------------- 
id (PK) 
user_id (FK) 
product_id (FK) 
rating 
comment 
UNIQUE (user_id, product_id) 

謝謝

尼克

+0

什麼是評級ID的目的? – Paparazzi

+0

將user_id或product_id設爲NULL的評級元組的_meaning_會是什麼? – wildplasser

+0

@wildplasser你從哪裏得到null?你真的認爲OP會允許一個空值的名字? – Paparazzi

回答

2

第一個你列出來,因爲它更簡單。 兩者都免除了同樣的任務,爲什麼你的生活變得複雜? 閱讀:KISS

+0

謝謝,聽起來不錯 – nick78