在数据库中添加产品投票

时间:2018-05-03 18:23:42

标签: sql tsql

在数据库中,我正在保存用户购买的篮子:

USERS
Id
Name

BASKETS
Id
UserId
Name

每个购物篮都是预定义的套餐选择:

BASKET_PACKAGES
BasketId   
PackageId

PACKAGES
PackageId
Name

每个包都是预定义产品的选择:

PACKAGE_PRODUCTS
PackageId
ProductId

PRODUCTS
Id
Name

在每个购物篮中,我需要为每个产品定义一个VOTE值。

每个用户可能会在不同的场合以不同的方式对产品进行投票,例如,在不同的篮子中。

最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

创建如下所示的实体

BasketVote
BasketVoteId PK
BasketId    FK
ProductId   FK
UserId      FK
Vote

您也可以使用PackageProductId而不是ProductId,这完全取决于您的要求。

答案 1 :(得分:1)

我会创建表格:

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,但我决定默认添加它,因为原则上它可以使用外键获得。

此外,您可能希望创建额外的索引以加快搜索速度。