我正在使用Play实现一个商店!框架。 Play使用Ebean作为ORM。现在我正在创建一个评级系统,用户可以对产品进行评级。允许用户仅对产品评分一次。我只是想知道如何设计RATING表的最佳实践。
有哪些优点/缺点?
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 :(得分:2)
您列出的第一个因为它更简单。 两者都解除了同样的任务,为什么会让你的生活变得复杂? 阅读:KISS
答案 1 :(得分:0)
我认为最好使用你列出的第二个,因为将来,如果你想引用“评级”,你不需要在新表中创建两个FK来引用它。在这种情况下,您只需要使用“评级”ID。如果你关心记忆经济,这是很好的,而且在我看来,这种做法使得对关系的理解变得更容易。