Вы говорите: "... пользователи могут делать ставки на продукт. "
Это говорит о том, что между пользователями и продуктами существует связь (ставки),Вы можете назвать это user_bids_on_product
или просто bid
.
Я бы удалил отношения между user
и product
(если это не означает что-то еще, например, владелец продукта) и объединил бы ваш bids
и bids_has_product
в одну таблицу:
user_bids_on_product
--------------------
product_id FK to product
user_id FK to user
price
(product_id, user_id)
должен , а не быть первичным ключом для этой таблицы, так как мы предполагаем, что пользователь может делать несколько ставок на продукт.
Вы можете добавить суррогат id
и сделать это PK или добавить столбец bid_number
и сделать соединение (product_id, user_id, bid_number)
PK.В качестве альтернативы вы можете сделать (product_id, bid_number)
PK (bid_number
может пометить порядок ставок для каждого продукта, как в данном случае аукцион).Я думаю, что решать вам.
Идентифицирующие отношения:
Неидентифицирующие отношения: