Я реализую магазин, используя Play! фреймворк. Игра использует Ebean как ORM. Сейчас я создаю систему оценки, в которой пользователь может оценивать продукты. Пользователь может оценивать продукт только один раз. Мне просто интересно узнать, как создать таблицу RATING.Лучшая практика: внешние ключи как первичные ключи или уникальное ограничение
- Использования user_id и product_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)
Спасибо,
Ник
Что было бы целью идентификатора рейтинга? – Paparazzi
Что было бы _meaning_ кортежа рейтинга с user_id или product_id равным NULL? – wildplasser
@wildplasser Откуда вы получаете null от этого? Вы действительно думаете, что OP будет разрешать имя нулевого значения? – Paparazzi