Добавить голосование продукта в базу данных - PullRequest
0 голосов
/ 03 мая 2018

В базе данных я сохраняю корзины, купленные пользователями:

USERS
Id
Name

BASKETS
Id
UserId
Name

Каждая корзина представляет собой набор предопределенных пакетов:

BASKET_PACKAGES
BasketId   
PackageId

PACKAGES
PackageId
Name

Каждая упаковка представляет собой набор предопределенных продуктов:

PACKAGE_PRODUCTS
PackageId
ProductId

PRODUCTS
Id
Name

В каждой корзине мне нужно определить значение VOTE для каждого продукта.

Каждый пользователь может голосовать за товар по-разному в разных случаях, например, в разных корзинах.

Каков наилучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Я бы создал таблицу:

create table basket_product_vote (
  basket_id int not null,
  product_id int not null,
  voted_on timestamp not null,
  vote_value int not null,
  constraint fk1_basket foreign key (basket_id) 
    references basket (id),
  constraint fk2_product foreign key (product_id) 
    references product (id)
);

Можно включить user_id, но я решил не добавлять его по умолчанию, поскольку в принципе его можно получить с помощью внешнего ключа.

Кроме того, вы, вероятно, захотите создать дополнительные индексы для ускорения поиска.

0 голосов
/ 03 мая 2018

Создать объект, как показано ниже

BasketVote
BasketVoteId PK
BasketId    FK
ProductId   FK
UserId      FK
Vote

Вы также можете использовать PackageProductId вместо ProductId, все зависит от ваших требований.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...