最佳实践:外键作为主键或唯一约束条件
问题描述:
我正在使用Play实施商店!框架。 Play使用Ebean作为ORM。现在我正在创建一个评分系统,用户可以评价产品。用户只能对产品评分一次。我只是想知道如何设计RATING表的最佳做法。最佳实践:外键作为主键或唯一约束条件
- 使用USER_ID和PRODUCT_ID作为主键 或
- 使用一个单独的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)
谢谢
尼克
什么是评级ID的目的? – Paparazzi
将user_id或product_id设为NULL的评级元组的_meaning_会是什么? – wildplasser
@wildplasser你从哪里得到null?你真的认为OP会允许一个空值的名字? – Paparazzi